如何使用 SwiftUI LazyVGrid 创建交错网格?

问题描述

我正在尝试实现一个包含网格中交错图像的 LazyVGrid 的视图 - 如以下 Pinterest 提要所示:

enter image description here

我知道 Waterfallgird 库,但我想知道是否有办法使用 LazyGrid 而不是普通的 V/HGrid 来实现此功能

解决方法

  1. 将您的数组拆分为您需要的列数。
  2. 在你的 LazyVGrid 中创建 2 个 VStack。
  3. 在两个 VStack 中放置一个 ForEach 并使用您之前创建的每个数组来填充它们。
  4. 就是这样

粗略的例子如下...

// 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)
            }
        }
    }
}

这可能不是很高效,但它应该能够做你想要的。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...