Ios 如何在SwiftUI中获取小部件的角半径大小?
我希望在自定义视图周围保留相同的插图。更改自定义视图的角半径时需要使用外部角半径 我找不到任何环境变量或任何其他方法来获取小部件本身的角半径Ios 如何在SwiftUI中获取小部件的角半径大小?,ios,macos,swiftui,widgetkit,ipados,Ios,Macos,Swiftui,Widgetkit,Ipados,我希望在自定义视图周围保留相同的插图。更改自定义视图的角半径时需要使用外部角半径 我找不到任何环境变量或任何其他方法来获取小部件本身的角半径 仅仅将硬编码的值解析为.cornerRadius(),并不是在每台设备上都有效。自从 不同的设备可能会对其小部件使用不同的半径。 var主体:一些视图{ VStack{ HStack{ VStack{ 文本(“你好”) .font(.title) 文本(“小部件”) } .padding() .背景(颜色.黄色) .cornerRadius(10)/我
- 仅仅将硬编码的值解析为
,并不是在每台设备上都有效。自从 不同的设备可能会对其小部件使用不同的半径。.cornerRadius()
var主体:一些视图{
VStack{
HStack{
VStack{
文本(“你好”)
.font(.title)
文本(“小部件”)
}
.padding()
.背景(颜色.黄色)
.cornerRadius(10)/我们在ios14
中使用ContainerRelativeShape
有更好的方法来实现这一点
ContainerRelativeShape
是一种新的形状类型,它将采用父级指定的最近容器形状的路径,并基于形状的位置使用适当的角半径
在本例中,系统正在为我们的小部件定义容器形状,我们非常容易地获得与之同心的角半径
.background(ContainerRelativeShape().fill(Color.yellow))
var主体:一些视图{
VStack{
HStack{
VStack{
文本(“你好”)
.font(.title)
文本(“小部件”)
}
.padding()
.background(ContainerRelativeShape().fill(颜色.黄色))//