一、AutoLayout有兩個重要的屬性:
1.Content Compression Resistance 百度翻譯(內容壓縮抗力)
2.Content Hugging 百度翻譯(內容擁抱)
二、解釋
Content Compression Resistance = 變大!(保持自己更大)
這個屬性的優先級(Priority)越高,越不“容易”被壓縮。也就是說,當整體的空間裝不下所有的View的時候,Content Compression Resistance優先級越高的,現實的內容越完整。
[self.labelTwo setContentCompressionResistancePriority:UILayoutPriorityDefaultHighforAxis:UILayoutConstraintAxisHorizontal];
Content Hugging = 抱緊!(保持自己更?。?
這個屬性的優先級越高,整個View就要越“抱緊”View里面的內容。也就是View的大小不會隨著父級View的擴大而擴大。
[self.labelOne setContentHuggingPriority:UILayoutPriorityDefaultHighforAxis:UILayoutConstraintAxisHorizontal];
>參數一:(UILayoutPriority)
>設置優先級等級,數值越大,優先級越高。
>UILayoutPriorityRequired == 1000;
>UILayoutPriorityDefaultHigh == 750;
>UILayoutPriorityDefaultLow == 250;
>UILayoutPriorityFittingSizeLevel == 50;
>參數二:(UILayoutConstraintAxis)
>百度翻譯(Axis:軸線。意思是你添加的優先級是Horizontal還是Vertical)
>UILayoutConstraintAxisHorizontal
>UILayoutConstraintAxisVertical
三、代碼部分
#import "ViewController.h"
#import "Masonry.h"
@interface ViewController ()
@property(nonatomic,strong) UILabel * labelOne;
@property(nonatomic,strong) UILabel * labelTwo;
@end
@implementation ViewController
- (void)initUI
{
[self.view addSubview:self.labelOne];
[self.labelOne mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.view.mas_left).with.offset(20);
make.top.equalTo(self.view.mas_top).with.offset(20);
}];
[self.view addSubview:self.labelTwo];
[self.labelTwo mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(_labelOne.mas_right);
make.right.equalTo(self.view.mas_right);
make.top.equalTo(self.view.mas_top).with.offset(20);
make.height.equalTo(_labelOne);
}];
[self.labelOne setContentHuggingPriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal];
/**參數一:(UILayoutPriority)
UILayoutPriorityRequired
UILayoutPriorityDefaultHigh
UILayoutPriorityDefaultLow
UILayoutPriorityFittingSizeLevel
*/
/**參數二:(UILayoutConstraintAxis)
UILayoutConstraintAxisHorizontal
UILayoutConstraintAxisVertical
*/
[self.labelTwo setContentCompressionResistancePriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self initUI];
}
- (UILabel *)labelOne{
if (!_labelOne) {
self.labelOne = [[UILabel alloc] init];
self.labelOne.text = @"這是labelOne";
self.labelOne.backgroundColor = [UIColor redColor];
}
return _labelOne;
}
- (UILabel *)labelTwo{
if (!_labelTwo) {
self.labelTwo = [[UILabel alloc] init];
self.labelTwo.text = @"這是labelTwo";
self.labelTwo.backgroundColor = [UIColor greenColor];
}
return _labelTwo;
}
@end