SwiftUI:添加边框以查看而不出血?

zum*_*zum 4 swiftui

我有一个简单的观点是这样的:

struct TestView: View {
    
    var body: some View {
        
        Button(action: {}) {
            Text("Button")
                .padding()
                .foregroundColor(.white)
            
        }
        .background(Color(.gray))
//        .cornerRadius(10)
        .overlay(
            RoundedRectangle(cornerRadius: 10)
                .stroke(.red, lineWidth:4)
        )
        
    }
       
}
Run Code Online (Sandbox Code Playgroud)

它画出这样的:

在此输入图像描述

我试图理解为什么边界会从视图中溢出(灰色区域)。我想绘制边框,使其保留在视图内(在灰色区域中)。看起来宽度的一半在外面,一半在里面。

如何使边框保持在覆盖范围内?

ahe*_*eze 7

\n

如何使边框保持在覆盖范围内?

\n
\n

使用strokeBorder(_:lineWidth:antialiased:)\xe2\x80\x94 代替,这会绘制一个内部笔画。

\n
Button(action: {}) {\n    Text("Button")\n        .padding()\n        .foregroundColor(.white)\n}\n.background(Color(.gray))\n.overlay(\n    RoundedRectangle(cornerRadius: 10)\n        .strokeBorder(.red, lineWidth: 4) /// here!\n)\n
Run Code Online (Sandbox Code Playgroud)\n

红色边框位于灰色区域内

\n