元のドキュメント:developer.apple.com/documentation/swiftui/view/buttonsizing(_:)


インスタンスメソッド


buttonSizing(_:)


ビュー階層におけるボタンの推奨されるサイズ設定動作。


iOS 26.0+ iPadOS 26.0+ Mac Catalyst 26.0+ macOS 26.0+

tvOS 26.0+ visionOS 26.0+ watchOS 26.0+

nonisolated
func buttonSizing(_ sizing: ButtonSizing) -> some View




パラメータ


sizing

ボタンのサイズ調整動作。この動作は、それに合わせて調整可能なボタンの主軸サイズに影響を与えるために使用できます。



議論


ビューは、親ビューの提案サイズ内で主軸上のサイズを決定する際に、指定されたボタンサイズ設定を使用できます。


ボタンとして表示される多くの組み込みコントロールは、このビュー修飾子に対応しています。例えば、ButtonPickerControlGroupToggle などの特定のスタイルを、これらのコントロールまたはそのコンテナにこの修飾子を適用することで、柔軟に変更できます。


以下の例では、コンテナの幅いっぱいに広がるボタンを作成します。これは、ウェルカムウィンドウのサイドバーなど、ボタンが狭い場所に配置される場合に便利です。


Button("Open Document…", action: openDocument)
    .buttonSizing(.flexible)

独自のビューやスタイルは、buttonSizing 環境値を読み取り、適切なフレームを適用することで、このビュー修飾子に適応させることができます。


struct CustomButtonStyle: ButtonStyle {
    @Environment(\.buttonSizing) private var buttonSizing

    private var maxWidth: CGFloat {
        switch buttonSizing {
        case .flexible: .infinity
        case .fitted, _: nil
        }
    }

    func makeBody(configuration: Configuration) -> some View {
        configuration.content
            .frame(maxWidth: maxWidth)
            .background(.tint, in: Capsule())
    }
}




以下も見よ


ボタンの作成


struct Button

アクションを開始するコントロール。


func buttonStyle<S>(S) -> some View

このビュー内のボタンのスタイルを、カスタムの外観とカスタムの操作動作を備えたボタンスタイルに設定します。


func buttonBorderShape(ButtonBorderShape) -> some View

このビュー内のボタンの境界線の形状を設定します。


struct ButtonBorderShape

ボタンの境界線を描画するために使用される形状。


func buttonRepeatBehavior(ButtonRepeatBehavior) -> some View

このビューのボタンが長時間の操作でアクションを繰り返しトリガーするかどうかを設定します。


struct ButtonRepeatBehavior

ボタンのアクションの再現性を制御するためのオプション。


var buttonRepeatBehavior: ButtonRepeatBehavior

この関連環境を持つボタンが、長時間の操作でアクションを繰り返しトリガーするかどうか。


struct ButtonSizing

ボタンやその他のボタンのようなコントロールのサイズ調整動作。


var buttonSizing

ビュー階層におけるボタンの推奨されるサイズ設定動作。


struct ButtonRole

ボタンの目的を説明する値。














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ