一个 UIGridLayout (不要与抽象 UIGridStyleLayout 从中继承的这个类) 在父 UI 元素内布置兄弟 UI 元素的多个行,直到下一个元素不能放置为止,添加元素到一行一次,直到下一个元素不能放置为止。然后继续在下一行添加元素。UIGridLayout 将接受 UI 元素的 GuiObject.Size 和 GuiObject.Position 控制。在控制下,这些用户界面元素的属性在属性窗口中不可编辑。
默认情况下,元素在 上升顺序 中布置,低值在高值之上获得更多优先权,但这可以通过将 更改为 名称 来使用元素的名称来更改。当元素被添加/删除或相关属性发生变化时,UI列表布局会自动重新布置元素:GuiObject.LayoutOrder 或 Instance.Name 。这可以通过手动调用 UIGridStyleLayout:ApplyLayout() 来触发,虽然通常不需要。
实际细胞大小对所有细胞相同。UIGridLayout 将遵守与其配置的 UI 限制,例如 UISizeConstraint 和 UIAspectRatioConstraint 。布局中的元素可以跨多个细胞,如果它们有一个 UISizeConstraint 与一个 MinSize 设置高于 CellSize 。使用 UIGridLayout.FillDirectionMaxCells 可以限制每行的元素数量。如果设置为 1,可以创建单行元素(每个元素都会放置在自己的行中)。
当行分割符合随机细胞后,此布局很适合。例如,一组库存空间是一种很好的布局使用。如果在表中建立值表中插入一行空行不适合在表中数据的中间,那么使用 UITableLayout 可能是更好的选择。
概要
属性
网格中元素的数量。
网格中每个元素的绝对大小。
决定网格上元素之间的空间有多少。
确定网格中每个元素的大小。
决定在下一个开始之前可以在行或列中使用的最大数量的细胞。
决定从哪个角落网格开始布置 UI 元素。
网格布局占用的绝对空间。
决定在哪个轴上布置 UI 对象。
确定父元素内的 UI 元素的横向对齐。
决定孩子 UI 对象在布局中的排序。
确定父元素内的 UI 元素的垂直对齐。
属性
AbsoluteCellSize
提供网格元素的尺寸在抵消中。仅读。不受网格中任何单元元素应用的任何UIScale、UISizeConstraint或UIAspectRatioConstraint影响。
CellSize
(默认值 0、100、0、100) 决定网格中每个元素的大小。与所有 UDim2s 一样,这个尺寸可以既在父容器的尺寸百分比中,又在原始像素偏移值中。如果元素的大小有 UIConstraint ,那么大小将由约束决定,而不是网格。
FillDirectionMaxCells
FillDirectionMaxCells 确定网格上可以使用的细胞数,以便在继续下一行/列之前(无论是行还是列取决于 UIGridStyleLayout.FillDirection )。该值必须为非负值。
- 如果设置为零,只有父级 UI 元素可以容纳的最大数量的细胞才可能出现在一行/列中。
- 如果设置为一,这将创建一个类似于由 UIListLayout 创建的列表。
StartCorner
起始角(Enum.StartCorner)决定从哪个角落网格开始布置用户界面元素。网格在 UIGridStyleLayout.FillDirection 继续进行,逐个填充元素,直到 UIGridLayout.FIllDirectionMaxCells 细胞已布置在该行/列中或所有父级 UI 元素的空间已被前一个细胞占用。
上面,药水是第一个 ImageLabel , 随后是宝石和剑。UIGridLayout正在使用底部右侧的 Enum.StartCorner。UIGridStyleLayout.FillDirection 是水平的。