プロトコル


ViewModifier


一つのビューまたは別のビュー修飾子に適用して、元の値の異なるバージョンを生成する修飾子。


iOS 13.0+ iPadOS 13.0+ macOS 10.15+ Mac Catalyst 13.0+

tvOS 13.0+ watchOS 6.0+ visionOS 1.0+


func animation(_ animation: Animation?) -> some





概要


任意のビューに適用できる再利用可能な修飾子を作成したい場合は、ViewModifier プロトコルを採用します。以下の例では、いくつかの修飾子を組み合わせて、角の丸い四角形で囲まれた青いキャプションテキストの作成に使用できる新しい修飾子を作成します。


  1. struct BorderedCaption: ViewModifier {
  2. func body(content: Content) -> some View {
  3. content
  4. .font(.caption2)
  5. .padding(10)
  6. .overlay(
  7. RoundedRectangle(cornerRadius: 15)
  8. .stroke(lineWidth: 1)
  9. )
  10. .foregroundColor(Color.blue)
  11. }
  12. }


あなたは modifier(_:) をビューに直接適用することもできますが、より一般的で慣用的なアプローチでは、modifier(_:) を使用して、ビュー修飾子を組み込んだ View 自体の拡張機能を定義します。


  1. extension View {
  2. func borderedCaption() -> some View {
  3. modifier(BorderedCaption())
  4. }
  5. }


次に、以下のように、枠線付きのキャプションを任意のビューに適用できます。


  1. Image(systemName: "bus")
  2. .resizable()
  3. .frame(width:50, height:50)
  4. Text("Downtown Bus")
  5. .borderedCaption()





トピックス


ビュー修飾子の作成


func body(content: Self.Content) -> Self.Body

呼び出し元の現在の本文を取得します。
必須 デフォルトの実装が提供されます。


associatedtype Body : View

本体を表すビューの型。
必須


typealias Content

body() に渡されるコンテンツビューの型。


ビューにアニメーションの追加


func animation(Animation?) -> some ViewModifier

修飾子内のすべてのアニメーション化可能な値に animation を適用する修飾子の新しいバージョンを返します。


func concat<T>(T) -> ModifiedContent<Self, T>

selfmodifier を連結した結果である新しい修飾子を返します。


ビューのタップとジェスチャの処理


func transaction((inout Transaction) -> Void) -> some ViewModifier

操作変異関数の transform を修飾子内のすべての操作に適用する修飾子の新しいバージョンを返します。














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ