在swiftui3中,你可以像这样使用按钮样式的快捷方式
Button("0") {print("pressed 0")}
.buttonStyle(.bordered)我想用我的自定义按钮样式类来做到这一点。
struct CrazyButtonStyle:ButtonStyle{
func makeBody(configuration: Configuration) -> some View {
configuration.label
.foregroundColor(.red)
}
}这样称呼它
Button("0") {print("pressed 0")}
.buttonStyle(.crazy)我试过了
extension ButtonStyle{
static var crazy:CrazyButtonStyle {
get {
return CrazyButtonStyle()
}
}
}但是我得到了这个错误
Contextual member reference to static property 'crazy' requires 'Self' constraint in the protocol extension发布于 2021-06-24 03:34:55
您可以定义如下内容:
struct CrazyButtonStyle: ButtonStyle {
func makeBody(configuration: Configuration) -> some View {
HStack {
Spacer()
configuration.label.foregroundColor(.red)
Spacer()
}
.scaleEffect(configuration.isPressed ? 0.90 : 1)
}
}然后,将其应用于Button
Button("Crazy Button") {}
.buttonStyle(CrazyButtonStyle())有关参考,请参阅swift docs。
here也是一些其他的例子,也有动画!
https://stackoverflow.com/questions/67950407
复制相似问题