SwiftUI 2.0 LazyVGrid和LazyHGrid 深入使用教程含源码
程序员文章站
2024-03-24 13:03:52
...
基础介绍
SwiftUI的LazyVGrid和LazyHGrid为我们提供了相当灵活的网格布局,但它们仅适用于iOS 14或更高版本。
使用思路
最简单的网格由三部分组成:原始数据,描述所需布局的GridItem数组以及将数据和布局组合在一起的LazyVGrid或LazyHGrid。
核心组件
GridItem size类型
GridItem Size有三个类型
- fixed
具有指定固定大小的单个项目 - flexible
一个灵活的项目。
case flexible(minimum: CGFloat = 10, maximum: CGFloat = .infinity)
- adaptive
在一个灵活项目中有多个项目。这种大小的情况下,使用提供的边界和间距确定可以容纳多少个项目,将一个或多个项目放置在分配给单个“灵活”项目的空间中。 这种方法倾向于插入尽可能多的“最小”尺寸的项目,但允许它们增加到“最大”尺寸。
使用代码
1、adaptive尽可能的多塞入
struct Grid01: View {
let colors: [Color] = [.red, .blue, .green]
let columns = [
GridItem(.adaptive(minimum: 40))
]
var body: some View {
ScrollView {
LazyVGrid(columns: columns, spacing: 10) {
ForEach(0...1000, id: \