在 swiftui3 中,您可以像这样使用按钮样式快捷方式
Button("0") {print("pressed 0")}
.buttonStyle(.bordered)
Run Code Online (Sandbox Code Playgroud)
我想用我的自定义按钮样式类来做到这一点
struct CrazyButtonStyle:ButtonStyle{
func makeBody(configuration: Configuration) -> some View {
configuration.label
.foregroundColor(.red)
}
}
Run Code Online (Sandbox Code Playgroud)
像这样称呼它
Button("0") {print("pressed 0")}
.buttonStyle(.crazy)
Run Code Online (Sandbox Code Playgroud)
我努力了
extension ButtonStyle{
static var crazy:CrazyButtonStyle {
get {
return CrazyButtonStyle()
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误
Contextual member reference to static property 'crazy' requires 'Self' constraint in the protocol extension
Run Code Online (Sandbox Code Playgroud)
Ale*_*sky 19
苹果建议的方式:
struct CrazyButtonStyle: ButtonStyle {
func makeBody(configuration: Configuration) -> some View {
configuration.label
.foregroundColor(.red)
}
}
extension ButtonStyle where Self == CrazyButtonStyle {
static var crazy: Self { Self() }
}
Run Code Online (Sandbox Code Playgroud)
用法:
Button(action: {}) {
Image(systemName: "forward.fill")
}
.buttonStyle(.crazy)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1239 次 |
最近记录: |