🍎

[SwiftUI]ButtonStyleでボタンのEnable確認方法

2022/07/16に公開

ソース

struct EnableButtonStyle: ButtonStyle {
    func makeBody(configuration: ButtonStyle.Configuration) -> some View {
        EnableButton(configuration: configuration)
    }

    struct EnableButton: View {
        let configuration: ButtonStyle.Configuration
        @Environment(\.isEnabled) private var isEnabled: Bool
        var body: some View {
            configuration.label.foregroundColor(isEnabled ? Color.green : Color.red)
        }
    }
}

解説

環境値Environmentの.isEnabledを使用すれば良いです。

Discussion