iOS開發-Masonry約束寬高比

GabrielPanda發表於2019-04-11

先看看Masonry的原始碼,可以發現兩個屬性 這兩個屬性可以設定檢視中的寬高比例 使用multipliedBy必須是對同一個控制元件本身,比如,上面的程式碼中,我們都是對bottomInnerView.mas_width本身的,如果修改成相對於其它控制元件,會出問題。

//multipler屬性表示約束值為約束物件的乘因數
- (MASConstraint * (^)(CGFloat multiplier))multipliedBy;

//dividedBy屬性表示約束值為約束物件的除因數,可用於設定view的寬高比
- (MASConstraint * (^)(CGFloat divider))dividedBy;
複製程式碼

具體使用

// width/height比為1/3.0,要求是同一個控制元件的屬性比例
  [bottomInnerView mas_makeConstraints:^(MASConstraintMaker *make) {
    make.top.bottom.mas_equalTo(bottomView);
    make.center.mas_equalTo(bottomView);
    // 注意,這個multipliedBy的使用只能是設定同一個控制元件的,比如這裡的bottomInnerView,
    // 設定高/寬為3:1
    make.height.mas_equalTo(bottomInnerView.mas_width).multipliedBy(3);

    make.width.height.mas_equalTo(bottomView).priorityLow();
    make.width.height.lessThanOrEqualTo(bottomView);
  }];

複製程式碼

相關文章