博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Masonry的简单实用(使用心得)
阅读量:6757 次
发布时间:2019-06-26

本文共 1522 字,大约阅读时间需要 5 分钟。

Masonry是ios中用代码实现自动布局的一个框架,使用起来特别方便,主要有mas_makeConstraints添加约束),mas_updateConstraints更新约束),mas_remakeConstraints(移除约束要谨慎,防止view的fram缺东西)3个方法,具体使用如下

1.导入框架:a.直接拷贝过去 b.用cocospod pod 'Masonry', '~> 1.0.1'

2.引入头文件,开始使用,下面是几个具体的例子:

例子1:让一个蓝色view的内边距为50,点击屏幕后内边距变为100,具体实现如下(2中写法):

[blueView mas_makeConstraints:^(MASConstraintMaker *make) {

        第一种写法

        make.left.top.equalTo(self.view).offset(20);

        make.bottom.right.equalTo(self.view).offset(-20);

        第二种写法

        make.edges.insets(UIEdgeInsetsMake(50, 50, 50, 50));

    }];

 点击屏幕后更新约束代码如下:

 [blueView mas_updateConstraints:^(MASConstraintMaker *make) {

        第一种写法

        make.top.left.equalTo(self.view).offset(100);

        make.bottom.right.equalTo(self.view).offset(-100);

        第二种写法

        make.edges.insets(UIEdgeInsetsMake(100, 100, 100, 100));

    }];

例子2:蓝色view距离顶端100,距离左右各20,高度50,黑色view和蓝色view右端对其,黑色view顶端距离蓝色view底端20,并且宽度是蓝色view的一半,截图和代码如下(相对于父控件的约束可以省略):

[blueView mas_makeConstraints:^(MASConstraintMaker *make) {

        make.top.offset(100);

        make.left.offset(20);

        make.right.offset(-20);

        make.height.offset(50);

    }];

    [blankView mas_makeConstraints:^(MASConstraintMaker *make) {

        make.right.equalTo(blueView);

        make.height.equalTo(blueView);

        make.top.equalTo(blueView.mas_bottom).offset(10);

        make.width.equalTo(blueView).multipliedBy(0.5);

    }];

 

   使用技巧:引入下面2个宏,就不需要加mas_前缀了。

//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

转载于:https://www.cnblogs.com/kangshao/p/5832418.html

你可能感兴趣的文章
textField限制输入整数0-100
查看>>
MySQL调优
查看>>
tableview 没有数据显示的时候,插入无数据的view
查看>>
数据结构与算法学习(一)
查看>>
ns3内核解析记录
查看>>
基于lnmp的Discuz论坛
查看>>
Xcode中的 编译过程以及编译器
查看>>
OSV配合windows 2008 r2 NPS 搭建802.1X认证环境
查看>>
01-Swift基础语法
查看>>
【MySQL】无法进入mysql connections问题
查看>>
再说TCP神奇的40ms
查看>>
eclipse hibernate配置文件(*.hbm.xml)加上自动提示功能
查看>>
extjs 枚举类型
查看>>
五、Hotspot中高效的垃圾回收算法实现
查看>>
发送邮件常见的错误和解决方法
查看>>
机器学习服务器 PredictionIO 脱颖而出
查看>>
mysql不能连接远程mysql服务器
查看>>
Windows 8.1 重复数据删除——概念(一)
查看>>
iptables防火墙高级应用
查看>>
python运维-Socket网络编程
查看>>