我试图拥有一个带有覆盖层的宽度一致的兄弟,但我不断得到错误的结果。我的叠加看起来像这样:
有了这个代码:
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)
这lineWidth使得它稍微超出了它的范围。您可以平衡它以inset(by:)使其保持在原始框架内:
RoundedRectangle(cornerRadius: 20)
.inset(by: 3)
.stroke(RandomColor(), lineWidth: 3)
Run Code Online (Sandbox Code Playgroud)
注意:您可能只需要插入 2 —— 还没有进行足够的实验来了解确切的数字是多少
| 归档时间: |
|
| 查看次数: |
4375 次 |
| 最近记录: |