SwiftUI Essentials (SwiftUI の本質)

パスとシェイプの描画




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


あなたの理解度をチェックしてください






質問 1


GeometryReader の目的は何ですか?


(訳注: 原典と異なり、選択肢を選ぶとすぐ答えが表示されます)


GeometryReader を使用して、親ビューをグリッドに分割し、ビューを画面上にレイアウトします。


アプリ内の別の場所や異なるサイズのディスプレイでビューを再利用すると正しくない可能性のある数値をハードコーディングする代わりに、GeometryReader を使用してビューを動的に描画、配置、およびサイズ設定します。


GeometryReader を使用して、Circle などのアプリのビュー階層内のシェイプビューの型と位置を自動的に識別します。



質問 2


以下のコードでは、ビューはどのようにレイアウトされますか?


ZStack {
  Circle().fill(Color.green)
  Circle().fill(Color.yellow).scaleEffect(0.8)
  Circle().fill(Color.orange).scaleEffect(0.6)
  Circle().fill(Color.red).scaleEffect(0.4)
}









質問 3


以下の描画コードはどのような形状を作成しますか?


Path { path in
  path.move(to: CGPoint(x: 20, y: 0))
  path.addLine(to: CGPoint(x: 20, y: 200))
  path.addLine(to: CGPoint(x: 220, y: 200))
  path.addLine(to: CGPoint(x: 220, y: 0))
}
.fill(
 LinearGradient(
     gradient: .init(colors: [Color.green, Color.blue]),
     startPoint: .init(x: 0.5, y: 0),
     endPoint: .init(x: 0.5, y: 0.5)
 )
)