美文网首页
Masonry使用

Masonry使用

作者: 独立简书人 | 来源:发表于2019-04-10 14:48 被阅读0次

    一、使用Maaonry注意事项

    1.在使用Masonry添加约束之前,需要在addSubview之后才能使用,否则会导致崩溃。

    2.在添加约束时初学者经常会出现一些错误,约束出现问题的原因一般就是两种:约束冲突和缺少约束。对于这两种问题,可以通过调试和log排查。

    3.之前使用Interface Builder添加约束,如果约束有错误直接就可以看出来,并且会以红色或者黄色警告体现出来。而Masonry则不会直观的体现出来,而是以运行过程中崩溃或者打印异常log体现,所以这也是手写代码进行AutoLayout的一个缺点。

    二、基础使用

    Masonry基础API

     mas_makeConstraints()  添加约束

     mas_remakeConstraints()  移除之前的约束,重新添加新的约束

     mas_updateConstraints()   更新约束

    equalTo()

    mas_equalTo()

    width()    用来表示宽度,例如代表view的宽度。代表坐标系对象

    mas_width()    用来获取宽度的值。获取坐标系对象的值。

    三、常用方法

    1.设置内边距

    通过insets简化设置内边距的方式

        [ self.view2 mas_makeConstraints:^(MASConstraintMaker *make {make.edges.equalTo(self.view1).insets(UIEdgeInsetsMake(5, 10, 15, 20));}];

    2.更新约束

        [self.view2 mas_makeConstraints:^(MASConstraintMaker *make){

            make.center.equalTo(self.view1).offset(0);

            make.size.mas_equalTo(CGSizeMake(80, 80)); }];

    3.大于等于或小于等于某个值的约束

                //设置宽度大于等于300

                make.width.greaterThanOrEqualTo(@300);

                //设施宽度小于等于300

                make.width.lessThanOrEqualTo(@300);

    4.设置约束优先级

        Masonry为我们提供了三个默认的方法,priorityLow()、priorityMedium()、priorityHigh(),   这三个方法内部对应着不同的默认优先级。

      除了这三个方法,我们也可以自己设置优先级的值,可以通过priority()方法来设置。

         [self.view2 mas_makeConstraints:^(MASConstraintMaker *maker)      {

              maker.center.equalTo(self.view1);

              maker.width.equalTo(self.view1).priorityLow();

              maker.width.equalTo(@20).priorityHigh();

              ma height ker..equalTo(self.view1).priority(200);

              maker.height.equalTo(@40).priority(1000);

    }];

    5.约束比例

    //设置当前约束值乘以多少,例如view2的宽度是view1的两倍

    make.width.equalTo(self.view1).multipliedBy(2);

    相关文章

      网友评论

          本文标题:Masonry使用

          本文链接:https://www.haomeiwen.com/subject/auiniqtx.html