QGrid
- небольшая библиотека, которую я создал, которая использует тот же подход, что и представление List
SwiftUI, вычисляя его ячейки по требованию из базовой коллекции идентифицированных данных:
В простейшем виде QGrid
может использоваться только с этой 1 строкой кода в теле вашего View
, при условии, что у вас уже есть пользовательский вид ячейки:
struct PeopleView: View {
var body: some View {
QGrid(Storage.people, columns: 3) { GridCell(person: $0) }
}
}
struct GridCell: View {
var person: Person
var body: some View {
VStack() {
Image(person.imageName).resizable().scaledToFit()
Text(person.firstName).font(.headline).color(.white)
Text(person.lastName).font(.headline).color(.white)
}
}
}
Вы также можете настроить конфигурацию макета по умолчанию:
struct PeopleView: View {
var body: some View {
QGrid(Storage.people,
columns: 3,
columnsInLandscape: 4,
vSpacing: 50,
hSpacing: 20,
vPadding: 100,
hPadding: 20) { person in
GridCell(person: person)
}
}
}
Пожалуйста, ознакомьтесь с демонстрационным GIF и тестовым приложением в репозитории GitHub:
https://github.com/Q-Mobile/QGrid