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);
        }
Exemplo n.º 2
0
        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);
        }