先看看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);
}];
複製程式碼