SwiftUI Essentials (SwiftUI の本質)

パスとシェイプの描画





訳注:以下、必要な場所においては Mac と iPhone 両方のセクションを提供しています。
Mac → セクション 4、iPhone → セクション 104 とします。








    Badge.swift


  1. import SwiftUI
  2. struct Badge: View {
  3. var body: some View {
  4. Text("Hello, World!")
  5. }
  6. }
  7. struct Badge_Previews: PreviewProvider {
  8. static var previews: some View {
  9. Badge()
  10. }
  11. }



上記のリストの 5 行目を以下のように書き換えます。



  1. var body: some View {
  2. BadgeBackground()
  3. }
  4. }


プレビューその 1



    Badge.swift


  1. struct Badge: View {
  2. var badgeSymbols: some View {
  3. RotatedBadgeSymbol(angle: Angle(degrees: 0))
  4. .opacity(0.5)
  5. }
  6. var body: some View {
  7. ZStack {
  8. BadgeBackground()
  9. badgeSymbols
  10. }
  11. }
  12. }


プレビューその 2



上記のリストの 13 行目以下を下のように書き足します。



    Badge.swift


  1. BadgeBackground()
  2. GeometryReader { geometry in
  3. badgeSymbols
  4. .scaleEffect(1.0 / 4.0, anchor: .top)
  5. .position(x: geometry.size.width / 2.0, y: (3.0 / 4.0) * geometry.size.height)
  6. }
  7. }
  8. }
  9. }


プレビューその 3



    Badge.swift


  1. import SwiftUI
  2. struct Badge: View {
  3. static let rotationCount = 8
  4. var badgeSymbols: some View {
  5. ForEach(0..<Badge.rotationCount) { i in
  6. RotatedBadgeSymbol(
  7. angle: .degrees(Double(i) / Double(Badge.rotationCount)) * 360.0
  8. )
  9. }
  10. .opacity(0.5)
  11. }
  12. var body: some View {
  13. ZStack {
  14. BadgeBackground()
  15. GeometryReader { geometry in
  16. badgeSymbols
  17. .scaleEffect(1.0 / 4.0, anchor: .top)
  18. .position(x: geometry.size.width / 2.0, y: (3.0 / 4.0) * geometry.size.height)
  19. }
  20. }
  21. .scaledToFit()
  22. }
  23. }
  24. struct Badge_Previews: PreviewProvider {
  25. static var previews: some View {
  26. Badge()
  27. }
  28. }


プレビューその 4





セクション 1セクション 2
セクション 3セクション 4
セクション 101セクション 102
セクション 103セクション 104




目次
Xcode の新機能

フレームワーク

  • SwiftUI

  • ビューの作成と結合

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5

    セクション 6


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    セクション 106

    ビルドリストとナビゲーション

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5

    セクション 6

    セクション 7

    セクション 8


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    セクション 106

    セクション 107

    セクション 108

    ユーザー入力の処理

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5

    セクション 6


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    セクション 106

    パスとシェイプの描画

    セクション 1

    セクション 2

    セクション 3

    セクション 4


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    ビューと移行のアニメーション

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    複雑なインターフェースの構成

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    UI コントロールを扱う

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    UIKit とのインターフェース

    セクション 1

    セクション 2

    セクション 3

    セクション 4


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    watchOS アプリの作成

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    macOS アプリの作成

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5

    セクション 6

    セクション 7


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    セクション 106

    セクション 107