带圆角和边框的 SwiftUI 视图

SwiftUI view with rounded corners AND border

            ZStack {
                VStack {
                    Text("some text")
                    Button("Ok") {}
                     .foregroundColor(.cyan)
                     .padding()
                }
                .padding()
            }
            .background(.red)
            .border(.blue, width: 5)
            .cornerRadius(20)

我希望整个视图都具有带圆角的蓝色边框(而不是红色方块与蓝色圆角边框重叠。如何?我已经尝试了各种排序修饰符的方法。

无论您应用什么圆角半径,SwiftUI 边框都有直边(.cornerRadius 只是将视图剪裁成圆形遮罩,不会调整边框的外观)。

如果您想要圆角边框,则需要叠加 .stroke 一个圆角矩形:

VStack {
    Text("some text")
    Button("Ok") {}
        .foregroundColor(.cyan)
        .padding()
}
.padding()
.background(.red)
.cornerRadius(20) /// make the background rounded
.overlay( /// apply a rounded border
    RoundedRectangle(cornerRadius: 20)
        .stroke(.blue, lineWidth: 5)
)

结果: