Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.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 如何在SwiftUI中获取小部件的角半径大小?_Ios_Macos_Swiftui_Widgetkit_Ipados - Fatal编程技术网

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(颜色.黄色))//