Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 当superview也获取角半径时,子视图的SwiftUI角半径将更改_Ios_Swift_Swiftui - Fatal编程技术网

Ios 当superview也获取角半径时,子视图的SwiftUI角半径将更改

Ios 当superview也获取角半径时,子视图的SwiftUI角半径将更改,ios,swift,swiftui,Ios,Swift,Swiftui,我在为视图设置正确的角半径时遇到问题。假设我有这样的观点: HStack { Text("Hello").padding().background(Color.red).cornerRadius(.infinity) } 看起来是这样的: 正如您所看到的,这些角非常圆,这是所需的效果。 问题是,当我向superview(在本例中为HStack)添加拐角半径时,我的子视图的拐角半径开始超出使拐角完全圆的边界: HStack { Text("Hello").padding

我在为视图设置正确的角半径时遇到问题。假设我有这样的观点:

HStack {
    Text("Hello").padding().background(Color.red).cornerRadius(.infinity)
}
看起来是这样的:

正如您所看到的,这些角非常圆,这是所需的效果。 问题是,当我向superview(在本例中为
HStack
)添加拐角半径时,我的子视图的拐角半径开始超出使拐角完全圆的边界:

HStack {     
    Text("Hello").padding().background(Color.red).cornerRadius(.infinity)
}.cornerRadius(16)


问题是,如何确保子视图的角半径与第一幅图像中的一样保持完美?

结果证明,我必须将视图包装在合成组中才能使其工作

此处的工作示例:

HStack {
    Text("Hello")
    .padding()
    .background(Color.red)
    .cornerRadius(.infinity)
    .compositingGroup()
}.cornerRadius(16)

第二个图像结果的代码是什么?@SimonePistecchia与上面相同,但在HStack上有一个圆角半径,我编辑了这个问题以展示完整的示例。我不知道为什么你只使用一个元素将HStack四舍五入,但如果你在文本前后添加空格(),HStack不侵蚀红色按钮我提供的示例经过简化以关注问题。不过,在前后添加
Spacer()。