需求1:
對(duì)某個(gè)控制器上的view上的label進(jìn)行布局,要求其右側(cè)至少與view水平方向的中心處對(duì)齊,寬度隨著文字的增加逐漸變寬,但其右側(cè)距離view右側(cè)至少10pt.
使用Masonry
使用Masonry對(duì)UILabel進(jìn)行約束,設(shè)置其寬度的最小約束和距離右側(cè)的最大距離
代碼:
UILabel * orangeLbl = [UILabel new];
orangeLbl.backgroundColor = [UIColor orangeColor];
[self.view addSubview:orangeLbl];
orangeLbl.text = @"設(shè)置最小寬度-";
[orangeLbl mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.view.mas_left).offset(10);
make.top.equalTo(self.view.mas_top).offset(200);
make.width.mas_greaterThanOrEqualTo(self.view.frame.size.width * 0.5 - 10); // 設(shè)置最小寬度
make.right.mas_lessThanOrEqualTo(self.view.mas_right).offset(-10); // 設(shè)置距離右邊最小距離
}];
使用到了mas_greaterThanOrEqualTo和mas_lessThanOrEqualTo
需求2
某個(gè)控制器上的view上有兩個(gè)label,左、右兩邊各一個(gè),兩者之間的間距為10pt,左、右兩邊label的寬度最少為100,但當(dāng)兩個(gè)label上的文字都很多的時(shí)候首先左側(cè)的label上展示的文字更多。
使用Masonry
這是需要使用Masonry設(shè)置UILabel抗壓縮的優(yōu)先級(jí)
代碼:
UILabel * leftlbl = [UILabel new];
[self.view addSubview:leftlbl];
UILabel * rightLbl = [UILabel new];
[self.view addSubview:rightLbl];
leftlbl.backgroundColor = [UIColor yellowColor];
rightLbl.backgroundColor = [UIColor redColor];
[rightLbl mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.view.mas_top).offset(100);
make.right.equalTo(self.view.mas_right).offset(-10);
make.width.mas_greaterThanOrEqualTo(100); // 這是最小寬度
}];
[leftlbl mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.view.mas_left).offset(10);
make.top.equalTo(self.view.mas_top).offset(100);
make.right.equalTo(rightLbl.mas_left).offset(-10);
make.width.mas_greaterThanOrEqualTo(100);
}];
leftlbl.text = @"這是左邊的文字-";
rightLbl.text = @"這是右邊的文字-這是右邊的文字-這是右邊的文字-";
// 設(shè)置抗壓縮優(yōu)先級(jí)
[leftlbl setContentCompressionResistancePriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal];
[rightLbl setContentCompressionResistancePriority:UILayoutPriorityDefaultLow forAxis:UILayoutConstraintAxisHorizontal];
leftlbl的抗壓縮優(yōu)先級(jí)更高,所以leftlbl不容易被壓縮,能展示更多的文字。
放個(gè)效果圖:

屏幕快照 2018-12-17 下午10.59.39.png
放個(gè)demo
https://gitee.com/liangsenliangsen/masonry_priority.git
本篇文章到這里就結(jié)束了,愿大家加班不多工資多,男同胞都有女朋友,女同胞都有男朋友。??