问题
我正在尝试使用以下代码创建两个药丸状的圆形按钮。在iPadOS和iOS上,一切正常。但是,如果我把预览设备放在MacBook上,事情就开始像图片上描述的那样出现故障。
这是相应的代码:
struct ButtonBar: View {
var body: some View {
HStack(alignment: .center) {
Spacer()
Button {
// action not yet implemented
} label: {
Text("Cancel")
.font(FontFamily.CustomFont.regular.swiftUIFont(fixedSize: 16))
.foregroundColor(Color.white)
.padding(EdgeInsets(top: 12, leading: 39, bottom: 12, trailing: 39))
.background(Color(Theme.CustomGrayColor))
.clipShape(Capsule(style: .circular))
}
Button {
// action not yet implemented
} label: {
Text("Share")
.font(FontFamily.CustomFont.regular.swiftUIFont(fixedSize: 16))
.foregroundColor(Color(Theme.CustomGrayColor))
.padding(EdgeInsets(top: 12, leading: 39, bottom: 12, trailing: 39))
.background(Color(Theme.CustomOrangeColor))
.clipShape(Capsule(style: .circular))
}
}
.padding(EdgeInsets(top: 24, leading: 0, bottom: 24, trailing: 24))
.background(
Color(Theme.CustomGrayColor2)
.shadow(color: Color.black.opacity(0.25), radius: 12, x: 0, y: 0)
)
}
}
struct ButtonBar_Previews: PreviewProvider {
static var previews: some View {
ButtonBar()
}
}
这就是奇怪的地方在iOS上,使用上面的代码,一切都运行得很好,按钮看起来像这样:
问题
我希望SwiftUI能在两个平台上自动正确显示内容(这难道不是SwiftUI与UIKit/AppKit相比的最大优势吗?)
如何解决这个问题,使macOS上的按钮看起来像iOS上的按钮,而不为不同的平台创建单独的视图?
1条答案
按热度按时间bqucvtff1#
进场
.buttonStyle(.plain)
最好遵循Apple的HIG(设计指南)
***建议:**减小macOS的转弯半径
按钮的简化版本