🍣
[SwiftUI] カスタムModifierの作成
カスタムModifierの作成方法について解説します。
カスタムModifierを作成するためには、ViewModifier
プロトコルに準拠する必要があります。
今回は、テキストの背景色を青に変更するBlueLabel
というカスタムモディファイアを作成します。
ViewModifierに準拠したカスタムモディファイアを作成
struct BlueLabel: ViewModifier {
func body(content: Content) -> some View {
content
.padding()
.background(.blue)
.foregroundStyle(.white)
.font(.largeTitle)
}
}
ViewModifier
プロトコルの中を見てみるとbody(content:)
が必須になっており、このメソッドを適用することにより、モディファイアを作成できます。
public protocol ViewModifier {
@ViewBuilder @MainActor func body(content: Self.Content) -> Self.Body
}
カスタムモディファイアを使用する
カスタムモディファイアを使用するには、.modifier(_:)
メソッドを使います。
struct ContentView: View {
var body: some View {
Text("Hello, world!")
.modifier(BlueLabel())
}
}
Discussion