美文网首页
iOS相关:masonry的常用方法使用总结

iOS相关:masonry的常用方法使用总结

作者: 稻草人12138 | 来源:发表于2020-07-13 19:56 被阅读0次

xib或者故事版布局的局限性越来越明显,所以以纯代码布局为主逐渐成为iOSer比较喜欢的一种写代码方式,那么用的最多的肯定是Masonry,下面总结自己在使用masongy中的几个常用方法:

一、基本使用

使用masonry必须要先把控件对象添加到父视图上,然后再对它进行布局,不然编译会报错.
示例如下:

    UIView *view = [[UIView alloc]  initWithFrame:CGRectMake(50 , 50, 50, 50)];
    view.backgroundColor = [UIColor blueColor];
    [self.view addSubview:view];

    UIButton *btn = [UIButton buttonWithType:0];
    btn.frame = CGRectMake(100, 100, 100, 20);
    btn.backgroundColor = [UIColor redColor];
    [self.view addSubview:btn];
    
    [btn mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_equalTo(view);
        make.left.mas_equalTo(view.mas_right).mas_offset(20);
        make.right.mas_equalTo(self.view).mas_offset(-20);
        make.height.mas_offset(50);
        
    }];

使用效果如图:


效果图.png

1.mas_makeConstraints

mas_makeConstraints是最常用的方法,简单来说就是给视图添加约束,如上所示。

2.mas_updateConstraints

mas_updateConstraints是更新约束的方法,在原有的约束基础上更新同类约束,非同类约束不变。

示例一:
    [btn mas_updateConstraints:^(MASConstraintMaker *make) {
        make.top.mas_equalTo(view).mas_offset(20);
    }];
更新约束示例,这里更新了top约束.png
示例二:
    [btn mas_updateConstraints:^(MASConstraintMaker *make) {
        make.bottom.mas_equalTo(self.view).mas_offset(-100);
    }];
这里更新了bottom约束,因为原约束包含了top和height约束,bottom就称为同类约束.png
示例三:

在原约束缺少某类约束时,我们看到更新约束能起到补全约束的作用:

    [btn mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_equalTo(view);
        make.left.mas_equalTo(view.mas_right).mas_offset(20);
        make.right.mas_equalTo(self.view).mas_offset(-20);
//        make.height.mas_offset(50);
    }];
    [btn mas_updateConstraints:^(MASConstraintMaker *make) {
        make.bottom.mas_equalTo(self.view).mas_offset(-100);
    }];
补全约束.png

3.mas_remakeConstraints

mas_remakeConstraints重置约束,把原有约束清空后再添加约束

    [btn mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_equalTo(view);
        make.left.mas_equalTo(view.mas_right).mas_offset(20);
        make.right.mas_equalTo(self.view).mas_offset(-20);
//        make.height.mas_offset(50);
    }];
    
    [btn mas_remakeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_equalTo(view).mas_offset(0);
    }];
可以看到原有约束都清空了.png

一句话总结:
make用第一次添加的, update用最新的, remake不但用最新的,同时还会把原有的统统删除,不管是不是同类约束

两个点

1.Masonry是基于NSLayoutConstraint的封装,在block里面写约束,更为直观,更易于理解。
2.masonry使用的最主要的编程思想:链式编程

相关文章

  • iOS - Masonry使用中的一些整理

    [置顶]iOS - Masonry使用中的一些整理 标签:iOS资源大全iOS常用方法iOS学习资料Masonry...

  • iOS相关:masonry的常用方法使用总结

    xib或者故事版布局的局限性越来越明显,所以以纯代码布局为主逐渐成为iOSer比较喜欢的一种写代码方式,那么用的最...

  • masonry使用记录

    masonry git地址:https://github.com/SnapKit/Masonry 一、常用使用方法...

  • iOS 常用组件-高效切圆角方法总结

    iOS 常用组件-高效切圆角方法总结 iOS 常用组件-高效切圆角方法总结

  • Masonry使用总结

    Masonry使用总结 一、Masonry简介 Masonry是一个轻量级的布局框架,适用于iOS以及OS X。它...

  • iOS UITextField常用方法

    iOS UITextField常用方法 最近项目使用UITextField比较多,下面总结一些经常用到的方法 1....

  • Masonry

    Masonry使用方法Masonry的使用Masonry的github地址 本篇文章 Masonry的基本使用方法...

  • iOS Masonry常用方法

    Masonry就是为屏幕适配而生的三方框架. Masonry基础API 更新约束和布局 Masonry示例代码 常...

  • Masonry

    Masonry Masonry常用的属性和方法 例: UILabel* lable = [[UILabel all...

  • iOS Masonry使用总结

    Masonry布局定位约束冲突 视图布局添加约束的时候,有的时候会报一对约束冲突:Probably at leas...

网友评论

      本文标题:iOS相关:masonry的常用方法使用总结

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