protected override void SetupLayoutConstraints() { base.SetupLayoutConstraints(); this.SubviewsDoNotTranslateAutoresizingMaskIntoConstraints(); this.AddConstraints( IconImageView.AtLeadingOf(this, 13), IconImageView.WithSameCenterY(this), IconImageView.Width().EqualTo(36), IconImageView.Height().EqualTo(36), RangeLabel.ToTrailingOf(IconImageView, 16), RangeLabel.AtTopOf(this, 16), TypeLabel.AtLeadingOf(RangeLabel), TypeLabel.Below(RangeLabel), ArrowImageView.WithSameCenterY(this), ArrowImageView.AtTrailingOf(this, 12), ArrowImageView.Width().EqualTo(8), ArrowImageView.Height().EqualTo(13), StateLabel.ToLeadingOf(ArrowImageView, 6), StateLabel.WithSameCenterY(this), MainDeviderView.Height().EqualTo(Theme.Dimensions.DeviderWidth), MainDeviderView.AtBottomOf(this), MainDeviderView.AtTrailingOf(this), MainDeviderView.WithSameLeading(RangeLabel), LastItemDeviderView.WithSameHeight(MainDeviderView), LastItemDeviderView.AtBottomOf(this), LastItemDeviderView.AtLeadingOf(this), LastItemDeviderView.ToLeadingOf(MainDeviderView)); }
private IEnumerable <RangeAndLabels> GetMatchingColumns(RangeLabel label) { // Get all columns where either the label start or end is contained or the label completely overlaps column return(_columns.Where(c => (c.ColumnRange.Min <= label.Start && label.Start < c.ColumnRange.Max) || (c.ColumnRange.Min < label.End && label.End <= c.ColumnRange.Max) || (label.Start <= c.ColumnRange.Min && c.ColumnRange.Max <= label.End))); }
private int GetFirstEmptyRow(List <RangeAndLabels> matchingColumns, RangeLabel label) { int rowNo = 0; while (!matchingColumns.All(c => c.IsRowEmpty(rowNo))) { ++rowNo; } if (label != null) { foreach (var c in matchingColumns) { c.Labels[rowNo] = label; } } return(rowNo); }