问题描述
我正在尝试实现一个包含网格中交错图像的 LazyVGrid 的视图 - 如以下 Pinterest 提要所示:
我知道 Waterfallgird 库,但我想知道是否有办法使用 LazyGrid 而不是普通的 V/HGrid 来实现此功能。
解决方法
- 将您的数组拆分为您需要的列数。
- 在你的 LazyVGrid 中创建 2 个 VStack。
- 在两个 VStack 中放置一个 ForEach 并使用您之前创建的每个数组来填充它们。
- 就是这样
粗略的例子如下...
// split array
let splitArrays = ([TileItem],[TileItem])
ScrollView {
LazyVGrid(*setup GridItems here*) {
VStack {
ForEach(splitArrays.0) { tile in
Image(tile.image)
}
}
VStack {
ForEach(splitArrays.0) { tile in
Image(tile.image)
}
}
}
}
这可能不是很高效,但它应该能够做你想要的。