基礎介紹
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: \