Masonry使用

看一下Masonry支持哪一些属性

@property(nonatomic,strong,readonly) MASConstraint *left;

@property(nonatomic,strong,readonly) MASConstraint *top;

@property(nonatomic,strong,readonly) MASConstraint *right;

@property(nonatomic,strong,readonly) MASConstraint *bottom;

@property(nonatomic,strong,readonly) MASConstraint *leading;

@property(nonatomic,strong,readonly) MASConstraint *trailing;

@property(nonatomic,strong,readonly) MASConstraint *width;

@property(nonatomic,strong,readonly) MASConstraint *height;

@property(nonatomic,strong,readonly) MASConstraint *centerX;

@property(nonatomic,strong,readonly) MASConstraint *centerY;

@property(nonatomic,strong,readonly) MASConstraint *baseline;

这些属性与NSLayoutAttrubute的对照表如下:


Masonry使用_第1张图片

首先在Masonry中能够添加autolayout约束有三个函数

- (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *make))block;

- (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *make))block;

- (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block;

mas_makeConstraints只负责新增约束Autolayout不能同时存在两条针对于同一对象的约束,否则会报错。

mas_updateConstraints针对上面的情况会更新在block中出现的约束不会导致出现两个相同约束的情况。

mas_remakeConstraints则会清除之前的所有约束仅保留最新的约束。

三种函数善加利用就可以应对各种情况了

非常好的一篇Masonry的文章

http://www.jianshu.com/p/10a250cc5018

你可能感兴趣的:(Masonry使用)