SwiftUI配置LazyVGrid,无间距

dy1byipe  于 11个月前  发布在  Swift
关注(0)|答案(2)|浏览(113)

我想创建一个没有空格或更小空间的单元格网格,就像照片应用程序一样,SwiftUI 2 LazyVGrid可以吗?我已经尝试过了,但列之间总是有这个空间。
在文档中,spacing参数描述为:
spacing网格与其父视图中下一项之间的间距。
这没有多大意义,你不能只使用padding吗?而且,当我尝试增加间距时,它似乎实际上影响了单元格行之间的空间,这更令人意外。

yx2lnoni

yx2lnoni1#

LazyVGrid中给予spacing: 0表示垂直间距,在GridItem中赋予spacing: 0表示水平间距。
这里是一个演示。在Xcode 12 / iOS 14上测试
x1c 0d1x的数据

struct TestImagesInGrid: View {
    @State private var imageNames: [String]

    private let threeColumnGrid = [
        GridItem(.flexible(minimum: 40), spacing: 0),
        GridItem(.flexible(minimum: 40), spacing: 0),
        GridItem(.flexible(minimum: 40), spacing: 0),
    ]

    init() {
        _imageNames = State(initialValue: (0..<8).map { _ in
            "image_\(Int.random(in: 1...3))"
        })
    }

    var body: some View {
        LazyVGrid(columns: threeColumnGrid, alignment: .leading, spacing: 0) {
            ForEach(imageNames.indices) { i in
                Image(imageNames[i]).resizable()
                    .aspectRatio(1, contentMode: .fill)
                    .border(Color.black)
            }
        }
    }
}

字符串

neskvpey

neskvpey2#

简短的回答:

GridItem(.flexible(), spacing: 0),

字符串

相关问题