iOS开发-Masonry约束宽高比

6,451 阅读1分钟

先看看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);
  }];