SwiftUI настраивает LazyVGrid без пробелов
Я хотел создать сетку ячеек без пробелов или меньшего размера, как в приложении "Фотографии", возможно ли это с SwiftUI 2 LazyVGrid? Я пробовал, но между столбцами всегда есть пробел.
В документации spacing
параметр описывается как:
интервал Расстояние между сеткой и следующим элементом в родительском виде.
Что не имеет особого смысла, ты не можешь просто использовать padding
для этого? Кроме того, когда я попытался увеличить интервал, мне показалось, что это действительно влияет на пространство между рядами ячеек, что является еще более неожиданным.
1 ответ
Вы даете 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)
}
}
}
}