Swift 如何使单元格独立对齐的类似集合的视图?

Swift 如何使单元格独立对齐的类似集合的视图?,swift,swiftui,Swift,Swiftui,共有三列,如果查看图像,单元格的y轴位置取决于行。例如,无论每个图像/单元格的高度如何,单元格都是隔开的,以便行与其相邻单元格保持左右对齐。这会产生令人尴尬的垂直空白。我希望单元格根据垂直空间容差向上或向下移动,而不是创建空白,以便行与相邻行对齐。我喜欢LazyGrid动态加载单元并重用它们 这是我的密码: import SwiftUI struct ContentView: View { private var symbols = ["keyboard",

共有三列,如果查看图像,单元格的y轴位置取决于行。例如,无论每个图像/单元格的高度如何,单元格都是隔开的,以便行与其相邻单元格保持左右对齐。这会产生令人尴尬的垂直空白。我希望单元格根据垂直空间容差向上或向下移动,而不是创建空白,以便行与相邻行对齐。我喜欢LazyGrid动态加载单元并重用它们

这是我的密码:


import SwiftUI

struct ContentView: View {

    private var symbols = ["keyboard", "hifispeaker.fill", "printer.fill", "tv.fill", "desktopcomputer", "headphones", "tv.music.note", "mic", "plus.bubble", "video"]

    private var colors: [Color] = [.yellow, .purple, .green]

    var body: some View {
        ScrollView {
            LazyVGrid(columns: .init(3), alignment: .center, spacing: 10) {
                ForEach((0...999), id: \.self) {
                    Image(systemName: symbols[$0 % symbols.count])
                        .font(.system(size: 30))
                        .frame(width: 50, height: CGFloat.random(in: 0...100))
                        .background(colors[$0 % colors.count])
                        .cornerRadius(10)
                }
            }
        }
    }
}


struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

extension Array where Element == GridItem {
    init(_ count: Int) {
        self = Array(repeating: GridItem(.flexible()), count: count)
    }
}

我可能误解了你的问题,但我认为这不可能用
LazyVGrid
——如果没有行/列对齐,它就不再是“网格”。你不能用
LazyVGrid
,不可能!,但是你可以用定制的方式来实现。好的,我编辑了标题。我没有嫁给懒汉。我该怎么做呢?你可以用3个并排的VStack/LazyVStack,这就是你的答案你自己说过,“VStack”,V=Vertical,VStack是一个垂直堆栈,内容是垂直组织的。