どうも、ちょげ(@chogetarou)です。
自作したToggleStyleを実装する方法を紹介します。
方法

カスタムToggleStyleを実装するには、まず「ToggleStyle」に準拠した構造体を用意します。
struct CustomToggleStyle : ToggleStyle { }
次に、CustomToggleStyleにmakeBodyメソッドを追加します。
makeBodyメソッドでは、Toggleの表示を指定します。
struct CheckToggleStyle : ToggleStyle {
func makeBody(configuration: Configuration) -> some View {
ToggleView() //トグルの表示を指定
}
}
最後に、ToggleにtoggleStyle修飾子を付与し、toggleStyleの引数にCustomToggleStyleのインスタンスを指定します。
Toggle(・・・)
.toggleStyle(CustomToggleStyle())
これでカスタムToggleStyleを実装することが出来ます。
使用例
struct ContentView: View {
@State var isOn = false
var body: some View {
VStack {
Toggle("Switch", isOn: $isOn)
.toggleStyle(CheckToggleStyle())
.padding()
}
}
}
struct CheckToggleStyle : ToggleStyle {
func makeBody(configuration: Configuration) -> some View {
Button(action : {
configuration.isOn.toggle()
}) {
Label {
configuration.label
} icon: {
Image(systemName: configuration.isOn ? "checkmark.square" : "square")
.foregroundColor(configuration.isOn ? .accentColor : .secondary)
.imageScale(.large)
}
}
.buttonStyle(PlainButtonStyle())
}
}

[SwiftUI]Toggleボタンのラベルを非表示にするには?
Toggleビューで表示するラベルを非表示に設定する方法を紹介します。

[SwiftUI]ToggleボタンのONの時の背景色を設定するには?
ToggleボタンのONになっている時の背景色を設定する方法を紹介します。

[SwiftUI]「Toggle(トグル)ビュー」の使い方[Xcode]
2021.8.15 「Toggleビューって何?」「どうやって使えばいいの?」という人に向けて、Toggleビューの使い方を解説します。

[SwiftUI]Picker(ピッカー)を操作できないようにするには?
Pickerをユーザーが操作できないようにする方法を紹介します。
コメント