首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将自定义ButtonStyle添加到swiftui3中的快捷方式swiftui .buttonstyle()属性

如何将自定义ButtonStyle添加到swiftui3中的快捷方式swiftui .buttonstyle()属性
EN

Stack Overflow用户
提问于 2021-06-12 23:39:41
回答 2查看 49关注 0票数 0

在swiftui3中,你可以像这样使用按钮样式的快捷方式

代码语言:javascript
复制
Button("0") {print("pressed 0")}
    .buttonStyle(.bordered)

我想用我的自定义按钮样式类来做到这一点。

代码语言:javascript
复制
struct CrazyButtonStyle:ButtonStyle{
    func makeBody(configuration: Configuration) -> some View {
        configuration.label
            .foregroundColor(.red)
    }
}

这样称呼它

代码语言:javascript
复制
Button("0") {print("pressed 0")}
    .buttonStyle(.crazy)

我试过了

代码语言:javascript
复制
extension ButtonStyle{
    static var crazy:CrazyButtonStyle {
        get {
            return CrazyButtonStyle()
        }
    }
}

但是我得到了这个错误

代码语言:javascript
复制
Contextual member reference to static property 'crazy' requires 'Self' constraint in the protocol extension
EN

Stack Overflow用户

发布于 2021-06-24 03:34:55

您可以定义如下内容:

代码语言:javascript
复制
struct CrazyButtonStyle: ButtonStyle {
  func makeBody(configuration: Configuration) -> some View {
    HStack {
      Spacer()
      configuration.label.foregroundColor(.red)
      Spacer()
    }
    .scaleEffect(configuration.isPressed ? 0.90 : 1)
  }
}

然后,将其应用于Button

代码语言:javascript
复制
Button("Crazy Button") {}
  .buttonStyle(CrazyButtonStyle())

有关参考,请参阅swift docs

here也是一些其他的例子,也有动画!

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67950407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档