【问题标题】:SwiftUI configure LazyVGrid with no spacingSwiftUI 配置没有间距的 LazyVGrid
【发布时间】:2022-04-11 01:54:02
【问题描述】:

我想创建一个没有空格或更小的单元格网格,就像照片应用程序一样,SwiftUI 2 LazyVGrid 可以吗?我试过了,但列之间总是有这个空间。

在文档中,spacing 参数描述为:

间距 网格与其父视图中的下一项之间的间距。

这没有多大意义,你不能直接使用padding 吗?此外,当我尝试增加间距时,它似乎实际上影响了单元格行之间的空间,这更加出乎意料。

【问题讨论】:

    标签: swift swiftui lazyvgrid


    【解决方案1】:

    LazyVGrid 中指定spacing: 0 用于垂直间距,在GridItem 中指定spacing: 0 用于水平间距。

    这是一个演示。使用 Xcode 12 / iOS 14 测试

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

    backup

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    • 2022-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多