SwiftUI:圆角矩形覆盖角被切除

non*_*ndo 12 swift swiftui

我试图拥有一个带有覆盖层的宽度一致的兄弟,但我不断得到错误的结果。我的叠加看起来像这样:

在此输入图像描述

有了这个代码:

VStack {
    HStack {
        Text("Test")
    }
    HStack {
        Text("test2")
    }
}
.padding()
.frame(width: UIScreen.main.bounds.width*0.95)
.frame(minHeight: 50)
.overlay (
    RoundedRectangle(cornerRadius: 20)
        .stroke(RandomColor(), lineWidth: 3)
)
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,角比覆盖层的所有其他部分都厚。我怎样才能解决这个问题?

use*_*ser 23

您缺少的是中风中风边界之间的区别,如果您将代码更改为中风边界,它会对您有所帮助。

RoundedRectangle(cornerRadius: 20)
    .strokeBorder(RandomColor(), lineWidth: 3)
Run Code Online (Sandbox Code Playgroud)


jn_*_*pdx 8

lineWidth使得它稍微超出了它的范围。您可以平衡它以inset(by:)使其保持在原始框架内:

RoundedRectangle(cornerRadius: 20)
 .inset(by: 3)
 .stroke(RandomColor(), lineWidth: 3)
Run Code Online (Sandbox Code Playgroud)

注意:您可能只需要插入 2 —— 还没有进行足够的实验来了解确切的数字是多少