Masonry 小记

但是如果加入一个约束:“width最少也大于200”,并且给这个约束设置优先级比 “右边要比父控件少50” 的优先级高,代码如下


1
2
3
4
5
6
[contentLbl2 mas_makeConstraints:^(MASConstraintMaker *make) {
     make.left.and.top.equalTo(blackView).with.offset(10);
     make.width.greaterThanOrEqualTo( @200 ).priority(900);
     make.right.equalTo(blackView).with.offset(-50).priority(800);
     make.height.equalTo( @30 );
}];

第3行的优先级大于第4行的优先级 所以执行第3行,Label并没有被挤压。

   //优惠后金额

    [_PurchaseCostmas_makeConstraints:^(MASConstraintMaker *make) {

        make.right.equalTo(_fatherView.mas_right).with.offset(-11);

       // make.width.equalTo(@(self.width/3));

        make.bottom.equalTo(_Date.mas_bottom).with.offset(0);

       make.width.lessThanOrEqualTo(@((kScreenWidth-150)*2/3));

        make.height.equalTo(@(17));

    }];

抗压缩还有另一种设置方法 

1
2
3
4
5
6
7
[contentLbl2 mas_makeConstraints:^(MASConstraintMaker *make) {
     make.left.and.top.equalTo(blackView).with.offset(10);
     make.right.equalTo(blackView).with.offset(-50).priority(990);
     make.height.equalTo( @30 );
}];
 
[contentLbl2 setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];

设置“右边要比父控件少50” 的优先级为1000以下, 然后在下面再写上一行水平方向抗压缩的代码。 这里要注意上面的“右边比父控件少50”优先级不能不写,因为Masonry这种类型的代码默认优先级都是1000,而下面UILayoutPriorityRequired的优先级也是1000,那么下面的代码就不起效果了。

其实还有更简单的设置方法,不用写水平方向抗压缩,只需要将上面约束后面的优先级改到750以下

1
2
3
4
5
[contentLbl2 mas_makeConstraints:^(MASConstraintMaker *make) {
     make.left.and.top.equalTo(blackView).with.offset(10);
     make.right.equalTo(blackView).with.offset(-50).priority(749);
     make.height.equalTo( @30 );
}];

因为优先级750对应的优先级枚举是UILayoutPriorityDefaultHigh,可以理解成Masonry本身就有一种抗压缩的保护,优先级是750。

1
[contentLbl2 setContentCompressionResistancePriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal];

这行代码应该是所有label默认存在的。

所以以后如果想让Label抗压缩,直接把优先级设置到750以下就OK了。





//***********************************************************************


 [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {

    make.edges.mas_equalTo(self.view); //边界

  }];

//一段代码解决 与最外的view边框对齐 约速了self.tableView的大小





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值