1.边距

[bottomView mas_makeConstraints:^(MASConstraintMaker *make) {

make.left.equalTo(self.view).offset(0) ;

}] ;

在和父视图比较时,可以省略掉父视图,如下:

[bottomView mas_makeConstraints:^(MASConstraintMaker *make) {

make.left.mas_equalTo(10) ;

}] ;

需要注意的是必须在和父视图同样方向比较时才可以省略,比如子视图的左边和父视图的左边做约束时才可以省略,子视图的左边和父视图的右边做约束时则不可以比较。

2.内边距

[bottomView mas_makeConstraints:^(MASConstraintMaker *make) {

make.edges.equalTo(self.view).insets(UIEdgeInsetsMake(0, 0, 0, 0)) ;

}] ;

上面的约束等价于

[bottomView mas_makeConstraints:^(MASConstraintMaker *make) {

make.left.top.bottom.right.equalTo(self.view).offset(0) ;

}] ;

3.约束动画

约束做动画相比之下比frame做动画要复杂一点。

@interface ViewController ()

{

CGFloat _scale ;

UIButton* _button ;

}

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

self.view.backgroundColor=[UIColor whiteColor] ;

_scale=1.0 ;

_button=[UIButton buttonWithType:UIButtonTypeCustom] ;

_button.backgroundColor=[UIColor blueColor] ;

[_button addTarget:self action:@selector(clickBlue) forControlEvents:UIControlEventTouchUpInside] ;

[self.view addSubview:_button] ;

[_button mas_makeConstraints:^(MASConstraintMaker *make) {

make.height.width.offset(100*_scale).priorityLow() ;

make.center.equalTo(self.view) ;

make.width.height.lessThanOrEqualTo(self.view) ;

}] ;

}

-(void)clickBlue

{

_scale+=0.2 ;

//告诉系统需要更新约束

[self.view setNeedsUpdateConstraints] ;

// 调用此方法告诉self.view检测是否需要更新约束,若需要则更新,下面添加动画效果才起作用

[self.view updateConstraintsIfNeeded] ;

[UIView animateWithDuration:0.5 animations:^{

[self.view layoutIfNeeded] ;

}] ;

}

// 你所需要做的动画都在下面这个方法中写

-(void)updateViewConstraints

{

[super updateViewConstraints] ;

[_button mas_updateConstraints:^(MASConstraintMaker *make) {

make.height.width.offset(100*_scale).priorityLow() ;

make.center.equalTo(self.view) ;

make.height.width.lessThanOrEqualTo(self.view) ;

}] ;

}

@end

Masonry学习笔记的更多相关文章

  1. amazeui学习笔记一(开始使用5)--藏品collections

    amazeui学习笔记一(开始使用5)--藏品collections 一.总结 1.藏品collections:一些 Amaze UI 中没有的功能.amazeui认为好的解决方案.像图表绘制里面的百 ...

  2. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  3. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  4. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  5. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  6. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  7. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  8. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  9. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

随机推荐

  1. 51nod 1237 最大公约数之和 V3

    求∑1<=i<=n∑1<=j<=ngcd(i,j) % P P = 10^9 + 7 2 <= n <= 10^10 这道题,明显就是杜教筛 推一下公式: 利用∑d ...

  2. bug--常见的bug总结:

    新手总结的开发中所遇到错误及解决办法,如有不对,欢迎指正,如有更好的解决办法,也请不吝赐教. 一.dialog.show()引起的android.view.WindowManager$BadToken ...

  3. tomcat 9.0配置管理员用户名和密码

    登录后,可以管理查看发布网站的信息,岗安装好的tomcat是没有管理密码的,可以在配置文件中修改. 在conf/tomcat-users.xml的文件中修改配置,默认的角色用户是被注销掉的.我去掉注释 ...

  4. Git——1

    集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器.中央服务器就好比是一个图 ...

  5. eclipse 断点使用深入技能

    原文:http://blog.jobbole.com/26435/ 摘要:调试不仅可以查找到应用程序缺陷所在,还可以解决缺陷.对于Java程序员来说,他们不仅要学会如何在Eclipse里面开发像样的程 ...

  6. CodeBlocks安装及配置注意事项

    在使用codeblocks的时候,网上一般只会提供CodeBlocks的项目文件,并不包括编译器和调试器,要使用CodeBlocks的完整功能需要在官网下载完整版. 如图可下载mingw版本. 进入C ...

  7. Python-6 分支 循环

    #1 循环 while 条件: 循环体 for 目标 in 表达式: 循环体   表达式可为:range(start,stop,step) break--终止当前循环,并跳出当前循环体. contin ...

  8. 慕课网-Java入门第一季-6-7 使用 Arrays 类操作 Java 中的数组

    来源:http://www.imooc.com/code/1556 Arrays 类是 Java 中提供的一个工具类,在 java.util 包中.该类中包含了一些方法用来直接操作数组,比如可直接实现 ...

  9. CHARINDEX

    实现查询条件多个值的或的关系 Select Id,Name from CustTable where CharIndex( CustTable.Name, 'ACDE,BEX,CCC')>0 C ...

  10. VA的自动补全Snippet

    开始旅程 如果您想要自定义补全,比如在使用UE4框架时,想输入一个方法的注释模板,可以这么做. 方法1:点击VAssistX -> insert VA Snippet -> Edit VA ...