Masonry
项目中我们实用 Masonry 自动布局,可能需要设置控件的宽高比,需要记录一下这个方法。
一句代码搞定: 注意这里需要设置的是控件的宽高比。
make.width.equalTo(self.backgroundImage.mas_height).multipliedBy(1.0f);
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor= [UIColor whiteColor];
self.backgroundImage = [[UIImageView alloc]init];
[self.view addSubview:self.backgroundImage];
self.backgroundImage.backgroundColor = [UIColor colorWithRed:1.0 green:0.502 blue:0.0 alpha:1.0];
[self.backgroundImage mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.view).offset(191);
make.left.equalTo(self.view).offset(20);
make.right.equalTo(self.view).offset(-20);
//设置背景图的宽高比!使用下面方法.
make.width.equalTo(self.backgroundImage.mas_height).multipliedBy(1.0f);
}];
}
酱紫的 1:1 约束
链条语法通俗易懂,牛逼
self.labelForDate = [[UILabel alloc] init];
[self.view addSubview:self.labelForDate];
self.labelForDate.backgroundColor = [UIColor colorWithRed:1.0 green:1.0 blue:0.0 alpha:1.0];
[self.labelForDate mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.labelForTime.mas_bottom).offset(2);
make.left.equalTo(self.view).offset(60);
make.right.equalTo(self.view).offset(-60);
//设置背景图的宽高比!使用下面方法.
make.height.equalTo(self.view.mas_height).multipliedBy(1/20.f);
}];
make.height.equalTo(self.view.mas_height).multipliedBy(1/20.f);
这句代码可以简单的理解为,让当前视图的宽度和相对的那层视图的高度之间的对比。
这个方法是通过不同控件之间,做的高与高之间的对比,举一反三,你就应该知道怎么写了。
黄色部分的约束