Vector2 CalculatePositionsVertical(Vector2 size, Vector2 offset) { var position = offset; var align = new Vector2(0, 0); var transposed_group = EasyLayoutUtilites.Transpose(ElementsGroup); CalculateMaxRowsHeights(); CalculateColumnsHeights(transposed_group); for (int y = 0; y < transposed_group.Count; y++) { var column_cell_max_size = GetMaxCellSize(transposed_group[y]); for (int x = 0; x < transposed_group[y].Count; x++) { var element = transposed_group[y][x]; align = GetAlignByHeight(element, MaxRowsHeights[x], column_cell_max_size, size.y - ColumnsHeights[y]); element.PositionTopLeft = GetElementPosition(position, align); position.y -= ((Layout.LayoutType == LayoutTypes.Compact) ? element.Height : MaxRowsHeights[x]) + Layout.Spacing.y; } position.y = offset.y; position.x += column_cell_max_size.x + Layout.Spacing.x; } return(size); }
void ShrinkHeightToFit() { var height = Layout.InternalSize.y; var transposed_group = EasyLayoutUtilites.Transpose(ElementsGroup); for (int i = 0; i < transposed_group.Count; i++) { ShrinkToFit(height, transposed_group[i], Layout.Spacing.y, RectTransform.Axis.Vertical); } }
/// <summary> /// Resize columns width to fit. /// </summary> protected void ResizeColumnWidthToFit() { var transposed_group = EasyLayoutUtilites.Transpose(ElementsGroup); ResizeToFit(Layout.InternalSize.x, transposed_group, Layout.Spacing.x, RectTransform.Axis.Horizontal); }