public IEnumerable <FluentLayout> Generate(UIView container, params UIView[] views) { WeightedWidthColumn firstWeightedColumn = null; UIView firstWeightedView = null; for (var i = 0; i < views.Length; i++) { var view = views[i]; var column = GetColumn(i); if (i == 0) { yield return(view.AtLeftOf(container, LeftMargin)); } else { yield return(view.ToRightOf(views[i - 1], HInterspacing)); } if (i == views.Length - 1) { yield return(view.AtRightOf(container, RightMargin)); } var weightedColumn = column as WeightedWidthColumn; if (weightedColumn != null) { if (firstWeightedColumn == null) { firstWeightedColumn = weightedColumn; firstWeightedView = view; } else { var multiplier = weightedColumn.Weight / firstWeightedColumn.Weight; yield return(view.WithRelativeWidth(firstWeightedView, multiplier)); } } var fixedColumn = column as FixedWidthColumn; if (fixedColumn != null) { yield return(view.Width().EqualTo(fixedColumn.Width)); } } }
public void ColumnWeight(int position, float weight) { _columnDefinitions[position] = new WeightedWidthColumn(weight); }