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

标签 ios swift swiftui swiftui-layout

我正在尝试实现一个包含网格中交错图像的 LazyVGrid 的 View - 如以下 Pinterest 提要所示:
enter image description here
我知道 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)
                }
            }
        }
    }
    
    
    这可能不是很高效,但它应该能够做你想要的。

    关于ios - 如何使用 SwiftUI LazyVGrid 创建交错网格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66101176/

    相关文章:

    ios - 将文件保存在 iCloud Drive 文档中(用户访问)

    Swift 泛型,类型在运行时首先已知

    swift - 关闭 SwiftUI 中的选择器并将选择器选择重置为初始值

    swift - onDelete() 函数处理程序如何在 swiftUI 列表中工作?

    ios - 如何在 SwiftUI 中迭代/foreach 数组

    ios - 如何包含 firebase 快照键值? [ swift ]

    iphone - 我如何使一个表格 View 指向具有另一个表格 View 的页面?

    ios - 带有 ARC 的 iOS5 modalviewcontroller 中的 AVCaptureSession

    ios - Facebook SDK 4.0 IOS Swift 以编程方式注销用户

    swift - {(Int)} 与 UInt8 不同