基于 NGUI 插件源码 (
UIGrid.cs) 的实现逻辑整理。
一、UIGrid 是什么
UIGrid是 NGUI 提供的自动布局组件,继承自UIWidgetContainer。它的唯一职责:
- 遍历自己的直接子节点,按行列规则计算并写入每个子节点的
localPosition - 只管位置,不改子节点的 size / scale / rotation
- 不影响自身的 size(自身高度需要业务代码或 UIWidget 额外撑起)
UIGrid与UITable的区别:
| 组件 | 规则 |
|---|---|
| UIGrid | 固定单元格 (cellWidth × cellHeight),子节点无论多大都按格子摆 |
| UITable | 按子节点实际尺寸(UIWidget.bounds)动态摆,格子大小自适应 |