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