Masonry 代码添加约束

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Masonry 代码添加约束相关的知识,希望对你有一定的参考价值。

0. 实用于:

(1)。纯代码写的ui控件(按钮,视图,标签等)

(2)。xib指向的视图。。等

1.在做Masonry的autoLayout之前 一定要先将view添加到superview上 否则会报错:(根据个人的经验:view上的子UI布局一定要在Masonry的autoLayout之后,即先确定view位置)

2.首先在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 则会清除之前的所有约束 仅保留最新的约束
三种函数善加利用 就可以应对各种情况了

3.约束添加完成以后。(更新位置)

[self.view setNeedsUpdateConstraints];
[self.view updateConstraintsIfNeeded];
[UIView animateWithDuration:0.35 animations:^{
        [self.view layoutIfNeeded];
    } completion:^(BOOL finished) {
        
    }];

以上是关于Masonry 代码添加约束的主要内容,如果未能解决你的问题,请参考以下文章

控件利用Masonry添加约束之后 不能立刻获取到该控件的尺寸

iOS代码约束处理&&Masonry源码分析

原iOS学习之Masonry第三方约束

Masonry的简单实用(使用心得)

使用 Masonry 向视图的子视图添加自动布局约束

iOS开发Masonry的使用