SwiftUI圆形按钮在单击时变形

时间:2019-07-18 18:40:45

标签: xcode button rounding swiftui beta

我用以下代码创建了一个圆形按钮:

onAdd

但是,单击按钮时,形状会变形。知道为什么会这样吗?

enter image description here

当我使用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行为还是正常行为?还有谁知道创建圆形按钮的更好方法吗?

1 个答案:

答案 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