一种通用网格布局视图,以响应式网格方式排列子视图。 支持竖屏和横屏方向,可配置最大条目数量。
| 参数 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
maxItems |
UInt |
❌ | 9 |
网格可显示的最大条目数 |
showingCurrently |
UInt |
✅ | - | 当前网格中可见的条目数 |
getChildView |
@escaping () -> CellContainerView |
✅ | - | 为每个网格单元格创建子视图的工厂闭包 |
| 方法 | 返回类型 | 描述 |
|---|---|---|
settingFrames(visibleItemCount:animation:completion:) |
Void |
以竖屏方式布局子视图,支持可选动画 |
settingFramesForLandScape(visibleItemCount:animation:completion:) |
Void |
以横屏方式布局子视图,支持可选动画 |
childView(index:) |
CellContainerView? |
返回指定索引处的子视图 |
prepareForReuse(childView:) |
Void |
准备子视图以供复用 |
import RealtimeKitUI
let gridView = GridView(
maxItems: 6,
showingCurrently: 4,
getChildView: {
return CellContainerView()
}
)
view.addSubview(gridView)import RealtimeKitUI
let gridView = GridView(
maxItems: 9,
showingCurrently: 3,
getChildView: {
return CellContainerView()
}
)
view.addSubview(gridView)
// Update layout with animation
gridView.settingFrames(
visibleItemCount: 4,
animation: true,
completion: {
print("Layout updated")
}
)