我想创建一个没有空格或较小空间的单元格网格,就像“照片”应用程序一样,SwiftUI 2 LazyVGrid是否可以?我已经尝试过了,但是列之间总是有这个空间。
在文档中,spacing
参数描述为:
哪一个没有多大意义,难道您不能仅使用padding
吗?另外,当我尝试增加间距时,它似乎实际上在影响单元格行之间的空间,这甚至更加令人意外。
最佳答案
您将spacing: 0
中的LazyVGrid
用作垂直间距,并将spacing: 0
中的GridItem
用作水平间距。
这是一个演示。经过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)
}
}
}
}
关于SwiftUI不带间隔地配置LazyVGrid,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63026130/