#iOS 开发实用技巧# Masonry 控件宽高(不同控件之间宽高比)比设置方法

#iOS 开发实用技巧# Masonry 控件宽高(不同控件之间宽高比)比设置方法_第1张图片
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);
        
        
    }];
    
    

}

#iOS 开发实用技巧# Masonry 控件宽高(不同控件之间宽高比)比设置方法_第2张图片
酱紫的 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);

这句代码可以简单的理解为,让当前视图的宽度和相对的那层视图的高度之间的对比。

  • 这个方法是通过不同控件之间,做的高与高之间的对比,举一反三,你就应该知道怎么写了。
#iOS 开发实用技巧# Masonry 控件宽高(不同控件之间宽高比)比设置方法_第3张图片
黄色部分的约束

你可能感兴趣的:(#iOS 开发实用技巧# Masonry 控件宽高(不同控件之间宽高比)比设置方法)