将样式为 .bordered 的 SwiftUI 按钮扩展为全宽

Posted

技术标签:

【中文标题】将样式为 .bordered 的 SwiftUI 按钮扩展为全宽【英文标题】:Make a SwiftUI button with style .bordered expand to full width 【发布时间】:2021-11-18 04:32:23 【问题描述】:

我正在尝试使用.buttonStyle(.bordered) 制作一个 SwiftUI 按钮,使其具有它所在的 VStack 的完整宽度。这是我的按钮代码:

Button("Save", action:saveUser)
    .frame(maxWidth:.infinity)
    .buttonStyle(.borderedProminent)

在预览中,我可以看到实际的框架是其容器的全宽,但 buttonStyle 提供的背景不是:

如果按钮样式也是全宽,我怎样才能使边框?

【问题讨论】:

【参考方案1】:

用这种方式制作全角按钮。

Button(action: 
    saveUser()
) 
    Text("Save").frame(minWidth: 0, maxWidth: .infinity)
.buttonStyle(.borderedProminent)

【讨论】:

以上是关于将样式为 .bordered 的 SwiftUI 按钮扩展为全宽的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI - 适合多行文本宽度的内联样式文本背景颜色 SwiftUI

如何在 SwiftUI 应用生命周期中更改状态栏样式?

SwiftUI 4.0 实现朴素(Plain)的 Form 样式

SwiftUI 4.0 实现朴素(Plain)的 Form 样式

CSS border(边框)样式写法总结

如何在 SwiftUI 中提供“系统”外观选择?