Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.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_Swift_Swiftui - Fatal编程技术网

Ios 如何根据父视图中的可用空间使用可变列数创建SwiftUI网格?

Ios 如何根据父视图中的可用空间使用可变列数创建SwiftUI网格?,ios,swift,swiftui,Ios,Swift,Swiftui,我正在用SwiftUI开发iOS iPadOS应用程序。 我有一个图像集合,我想以不同的行大小显示(所有行的长度必须相等),填充大部分父视图(边到边列表单元格)。如果您知道需要多少列或行,那么这样做非常简单。相反,我希望适应性代码设备不可知。尺寸等级(常规和紧凑型)不是一个选项,因为iPad分屏和iPhone横向布局都很紧凑,但有很多水平空间 我寻找了一种获取视图大小的方法,尽管我认为这不是一种好方法。我什么也没找到 这是我在构建布局时使用的基本代码(仍然不适合接受表的行数或列数): VStac

我正在用SwiftUI开发iOS iPadOS应用程序。 我有一个图像集合,我想以不同的行大小显示(所有行的长度必须相等),填充大部分父视图(边到边列表单元格)。如果您知道需要多少列或行,那么这样做非常简单。相反,我希望适应性代码设备不可知。尺寸等级(常规和紧凑型)不是一个选项,因为iPad分屏和iPhone横向布局都很紧凑,但有很多水平空间

我寻找了一种获取视图大小的方法,尽管我认为这不是一种好方法。我什么也没找到

这是我在构建布局时使用的基本代码(仍然不适合接受表的行数或列数):

VStack(对齐:。中心){
HStack(对齐:。中心){
垫片()
ForEach(lista.prefix(5)){periodo in
团体{
图像(系统名称:“\(periodo.imagen.circle.fill”)
.可调整大小()
.foregroundColor(颜色(周期颜色))
.框架(宽度:55,高度:55)
.ontapsigne{
self.periodoActual=self.lista.firstIndex(of:periodo)??0
}
垫片()
}
}
}
HStack(对齐:中心,间距:10){
ForEach(lista.dropFirst(5)){periodo in
图像(系统名称:“\(periodo.imagen.circle.fill”)
.可调整大小()
.foregroundColor(颜色(周期颜色))
.框架(宽度:55,高度:55)
.ontapsigne{
self.periodoActual=self.lista.firstIndex(of:periodo)??0
}
}
}
}.frame(最小宽度:0,理想宽度:。无穷大,最大宽度:。无穷大)
其中lista是一个数组(长度为10),包含从JSON文件解码的自定义结构实例。PeriodActual是一个状态变量(@state)

有人有办法有效地解决这个问题吗? 提前谢谢