我用以下代码创建了一个圆形按钮:
onAdd
但是,单击按钮时,形状会变形。知道为什么会这样吗?
当我使用struct RoundButton : View {
var value = "..."
var body: some View {
GeometryReader { geometry in
Button(action: {}) {
VStack {
Text(self.value)
.font(.headline)
.color(Color("NightlyDark"))
Text("MIN")
.font(.footnote)
.color(.white)
}
.frame(width: geometry.size.width, height: geometry.size.height)
}
.clipShape(Circle())
}
}
}
这是Beta行为还是正常行为?还有谁知道创建圆形按钮的更好方法吗?
答案 0 :(得分:1)
这里发生的事情是Button
,默认情况下将所有屏幕[宽+高]视为其框架。
所以您还必须设置Button
。
我认为这是watchOS
中的默认行为
这里是您的代码:
struct RoundButton: View {
var value = "..."
var body: some View {
GeometryReader { geometry in
Button(action: {}) {
VStack {
Text(self.value)
.font(.headline)
.foregroundColor(Color("NightlyDark"))
Text("MIN")
.font(.footnote)
.foregroundColor(.white)
}
.frame(width: geometry.size.width, height: geometry.size.height)
}
.frame(width: geometry.size.width, height: geometry.size.height)
.clipShape(Circle())
}
}
}
注意:我正在使用Xcode 11 Beta 4