Autolayout自动布局实现的方法三:第三方框架Masonry的使用

Masonry

  • Masonry是目前最流行的Autolayout第三方框架,省去了苹果官方恶心的Autolayout代码,大大提高了开发效率。

  • 框架下载地址:https://github.com/SnapKit/Masonry

mas_equalTo和equalTo

  • 默认情况下mas_equalTo有自动包装功能,比如自动将整型常量30包装为@30,equalTo没有自动包装功能
  • 如果添加了下面的宏,那么mas_equalTo和equalTo就没有区别:#define MAS_SHORTHAND_GLOBALS(注意:这个宏一定要添加到#import"Masonry.h"前面否则将没有效果)。

mas_width和width

  • 默认情况下width是make对象的一个属性,用来添加宽度约束用的,表示对宽度进行约束mas_width是一个属性值,用来当做equalTo的参数,表示某个控件的宽度属性

  • 如果添加了下面的宏,mas_width也可以写成width

  • defineMAS_SHORTHAND

  • mas_height、mas_centerX以此类推

  • 头部添加

#import "ViewController.h"
//define this constant if you want to use Masonry without the 'mas_' prefix
#define MAS_SHORTHAND
//define this constant if you want to enable auto-boxing for default syntax
#define MAS_SHORTHAND_GLOBALS
#import "Masonry.h"
  • 代码部分
// 蓝色控件
    UIView *blueView = [[UIView alloc] init];
    blueView.backgroundColor = [UIColor blueColor];
    [self.view addSubview:blueView];
    // 红色控件
    UIView *redView = [[UIView alloc] init];
    redView.backgroundColor = [UIColor redColor];
    [self.view addSubview:redView];
    // 添加约束
    CGFloat margin = 20;
    CGFloat height = 50;
    [blueView makeConstraints:^(MASConstraintMaker *make) {
        make.left.equalTo(self.view.left).offset(margin);
        make.right.equalTo(redView.left).offset(-margin);
        make.bottom.equalTo(self.view.bottom).offset(-margin);
        make.height.equalTo(height);
        make.top.equalTo(redView.top);
        make.bottom.equalTo(redView.bottom);
        make.width.equalTo(redView.width);
    }];
    [redView makeConstraints:^(MASConstraintMaker *make) {
        make.right.equalTo(self.view.right).offset(-margin);
    }];

最终显示效果

Autolayout自动布局实现的方法三:第三方框架Masonry的使用_第1张图片
竖屏效果

Autolayout自动布局实现的方法三:第三方框架Masonry的使用_第2张图片
横屏效果

你可能感兴趣的:(Autolayout自动布局实现的方法三:第三方框架Masonry的使用)