XCode 26.4 日本語化計画
元のドキュメント: developer.apple.com/documentation/swiftui/togglestyle/makebody(configuration:)
トグルの本体を表すビューを作成します。
@ViewBuilder @MainActor @preconcurrency func makeBody(configuration: Self.Configuration) -> Self.Body
必須
configuration
トグルのプロパティ。ラベルやトグルの状態への結合などが含まれます。
Toggle として機能するための動作と外観を備えたビュー。
ToggleStyle プロトコルに準拠するカスタムトグルスタイルを定義する際には、このメソッドを実装してください。Configuration 入力(ToggleStyleConfiguration インスタンス)を使用して、トグルのラベルと状態にアクセスします。トグルの外観と動作を持つビューを返します。たとえば、ラベルと、空の円またはチェックマークで塗りつぶされた円を表示するトグルを作成できます。
struct ChecklistToggleStyle: ToggleStyle {
func makeBody(configuration: Configuration) -> some View {
Button {
configuration.isOn.toggle()
} label: {
HStack {
Image(systemName: configuration.isOn
? "checkmark.circle.fill"
: "circle")
configuration.label
}
}
.tint(.primary)
.buttonStyle(.borderless)
}
}
ChecklistToggleStyle のトグルスタイルは、トグルの状態を確認したり変更したりする方法を提供します。円が塗りつぶされるとオンの状態になり、ユーザーはトグルをタップまたはクリックして状態を変更できます。カスタム化された Button を使用してトグルの本体を構成することで、SwiftUI はボタンのような特性を持つコントロールにユーザーが期待する動作を自動的に提供します。
このスタイルを使用するトグルのコレクションをスタックとして表示できます。

ビュー階層を更新する際、システムは関連したスタイルを使用する各 Toggle インスタンスに対して、makeBody(configuration:) メソッドの実装を呼び出します。
まったく新しいスタイルを作成する代わりに、トグルの現在のスタイルを変更することもできます。makeBody(configuration:) メソッド内で init(_:) イニシャライザーを使用すると、configuration 値に基づいてトグルを作成および変更できます。たとえば、現在のスタイルにパディングと赤い枠線を追加するスタイルを作成できます。
struct RedBorderToggleStyle: ToggleStyle {
func makeBody(configuration: Configuration) -> some View {
Toggle(configuration)
.padding()
.border(.red)
}
}
このスタイルから redBorder という静的変数を作成すると、組み込みの switch や button のスタイルなど、既に別のスタイルを使用しているトグルにもそのスタイルを適用できます。
Toggle("Switch", isOn: $isSwitchOn)
.toggleStyle(.redBorder)
.toggleStyle(.switch)
Toggle("Button", isOn: $isButtonOn)
.toggleStyle(.redBorder)
.toggleStyle(.button)
どちらのトグルも通常のスタイルで表示されていますが、それぞれに赤い枠線が付いています。

カスタムスタイルは、変更したスタイルよりもトグルに近い位置に適用してください。SwiftUI はスタイルビュー修飾子を外側から内側の順に評価するためです。スタイルを他の順序で適用すると、組み込みスタイルによって赤い枠線スタイルが完全に上書きされてしまい、効果がありません。
struct ToggleStyleConfiguration
トグルインスタンスのプロパティ。
トグルインスタンスのプロパティ。
トグルの外観と操作性を表すビュー。
必須