两个控件之间约束优先级
以两个label 为例
UILabel *label1 = UILabel.new;
label1.text = @"label1";
label1.backgroundColor = [[UIColor alloc]initWithRed:arc4random_uniform(255)/255.0 green:arc4random_uniform(255)/255.0 blue:arc4random_uniform(255)/255.0 alpha:1];
[self.view addSubview:label1];
[label1 mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.offset(10);
make.top.offset(100);
}];
UILabel *label2 = UILabel.new;
label2.text = @"label2";
label2.backgroundColor = [[UIColor alloc]initWithRed:arc4random_uniform(255)/255.0 green:arc4random_uniform(255)/255.0 blue:arc4random_uniform(255)/255.0 alpha:1];
[self.view addSubview:label2];
[label2 mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.offset(-10);
make.centerY.equalTo(label1);
make.left.mas_equalTo(label1.mas_right).offset(10);
}];
默认展示
设置label2为高优先级
[label1 setContentHuggingPriority:UILayoutPriorityDefaultLow forAxis:(UILayoutConstraintAxisHorizontal)];
[label2 setContentHuggingPriority:UILayoutPriorityRequired forAxis:(UILayoutConstraintAxisHorizontal)];
如果文字变长了
label1.text = @"label1-123456789qwertyuiop";
label2.text = @"label2-123456789qwertyuiop";
默认
设置压缩label2
[label1 setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:(UILayoutConstraintAxisHorizontal)];
[label2 setContentCompressionResistancePriority:UILayoutPriorityDefaultLow forAxis:(UILayoutConstraintAxisHorizontal)];