iOS 提供了自动布局的方法,但是原生的方法使用太过麻烦 ,Masonry 框架提供了类似的方法,同样可以实现自动布局

,代码更加直观,而且容易理解。

Masonry 是一个轻量级的布局框架。拥有自己的描述语法,采用更优雅的链式语法封装自动布局,简洁明了并具有较高的可读性

,同时支持iOS和Mac OSX。某种意义上可以取代AutoLayout

1.Masonry配置

使用时只需要导入头文件 (Masonry.h)

2.Masonry 常用的方法

2.1Masonry 给视图添加布局条件的常用方法主要有以下三种:

1.创建新的约束条件

[view1 mas_makeConstrains:^(MASContraintMaker *make)];

2.如果之前有约束条件 ,则更新约束条件,如果没有则添加约束

[view1 mas_updateConstrains:^(MASConstrainMaker*make)];

3.将之前的约束条件全部删除 ,重新添加新的约束条件(重置约束条件)

[view1 mas_remakeContrains:^(MASContrainMaker*make)];

*说明;make代表当前视图的约束条件

2.2Masonry 的约束属性和方法

MASContraint 是一个抽象类 ,为视图提供了彼此之间的约束条件

*equalTo: 对齐

*greaterThanOrEqualTo:大于或超出

*lessThanOrEqualTo :小于或超出

priorityLow:优先级低

priorityMedium :优先级中等‘

priorityHigh ;优先级高

offset :位置偏移

sizeOffset: 大小偏移

centerOffset :中心偏移;

例如:(设置view1的位置和大小  1. 通过设置四周边界里控制位置和大小)

[view1 mas_makeContraints:^(MASContraintMaker *make){

//定制视图到四边的距离

make.top.equalTo:(self.view.mas_top).offset(20);//到顶部的距离

make.bottom.equalTo:(self.view.mas_bottom).offset(-200);//到底部的距离

make.left.equalTo:(self.view.mas_left).offset(50); //左侧的距离

make.right.equalTo:(self.view.mas_right).offset(-100);//右侧的距离

}];

设置view2 的位置和大小

[view2 mas_makeConstrains:^(MASConstraintMaker:*make){

make.left.equalTo:(self.view.mas_left).offset(100);

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

make.width.mas_equalTo(100);

make.height.mas_equalTo(200);

}];

Masonry 轻量级布局框架的使用的更多相关文章

  1. Masonry布局框架的使用

    Masonry是一个轻量级的布局框架 拥有自己的描述语法 采用更优雅的链式语法封装自动布局 简洁明了 并具有高可读性.比我们使用自动布局,繁琐的约束条件,好用多了.下面我们来学学masonry的使用方 ...

  2. IOS控件布局之Masonry布局框架

    前言: 回想起2013年做iOS开发的时候,那时候并没有采用手写布局代码的方式,而是采用xib文件来编写,如果使用纯代码方式是基于window的size(320,480)计算出一个相对位置进行布局,那 ...

  3. 2016 年 50 个最佳的轻量级 JavaScript 框架和库

    作者:IT程序狮链接:https://zhuanlan.zhihu.com/p/24598210来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 回顾今年已发布的 JS ...

  4. 如何编写轻量级 CSS 框架

    Github 地址: https://github.com/nzbin/snack Demo 演示: https://nzbin.github.io/snack/ 前言 这篇文章我已经酝酿了半年之久, ...

  5. 轻量级php框架phpk v1.0发布

    phpk框架简介 PHPK是一个简单易用,易于扩展的轻量级PHP框架.phpk不仅仅是一个php框架,也是一个js框架,内置一套全新的js内库,完全摒弃了庞大的jquery,所有的前端都是一个全新的微 ...

  6. 微博轻量级RPC框架Motan

    Motan 是微博技术团队研发的基于 Java 的轻量级 RPC 框架,已在微博内部大规模应用多年,每天稳定支撑微博上亿次的内部调用.Motan 基于微博的高并发和高负载场景优化,成为一套简单.易用. ...

  7. 轻量级ORM框架初探-Dapper与PetaPoco的基本使用

    一.EntityFramework EF是传统的ORM框架,也是一个比较重量级的ORM框架.这里仍然使用EF的原因在于为了突出轻量级ORM框架的性能,所谓有对比才有更优的选择. 1.1 准备一张数据库 ...

  8. .NET轻量级MVC框架:Nancy入门教程(二)——Nancy和MVC的简单对比

    在上一篇的.NET轻量级MVC框架:Nancy入门教程(一)——初识Nancy中,简单介绍了Nancy,并写了一个Hello,world.看到大家的评论,都在问Nancy的优势在哪里?和微软的MVC比 ...

  9. JustWeEngine - 轻量级游戏框架

    JustWeEngine - 轻量级游戏框架 An easy open source Android game engine. Github地址 引擎核心类流程图 使用方法 引入Engine作为Lib ...

随机推荐

  1. pageContext对象的用法

    (1) pageContext对象 这个对象代表页面上下文,该对象主要用于访问JSP之间的共享数据. pageContext是PageContext类的实例,使用pageContext可以访问page ...

  2. [PAT]求集合数据的均方差(15)

    #include "stdio.h" #include "malloc.h" #include "math.h" int *getinput ...

  3. 安卓:assets目录下的文本文件(不受R文件节制)

    try { InputStream in = getAssets().open("testAsset.txt"); byte[] buffer = new byte[1024]; ...

  4. 关于UIView的autoresizingMask属性的研究【转】

    在 UIView 中有一个autoresizingMask的属性,它对应的是一个枚举的值(如下),属性的意思就是自动调整子控件与父控件中间的位置,宽高. 1 2 3 4 5 6 7 8 9 enum  ...

  5. 11.tftp和nfs服务器

    宿主机产生嵌入式软件的机器 运行程序的是目标机上运行 基于网络的下载 目标机通过tftp下载到目标机 1. 安装tftp依赖xinetd [root@cfm880 Packages]# rpm -iv ...

  6. java 获取classpath下文件多种方式

    java 获取classpath下文件多种方式 一:properties下配置 在resources下定义server.properties register.jks.path=classpath\: ...

  7. python之I/O多路复用

         python  IO多路复用 一.多路复用概念: 监听多个描述符(文件描述符(windows下暂不支持).网络描述符)的状态,如果描述符状态改变 则会被内核修改标志位,进而被进程获取进而进行 ...

  8. Nginx编译参数大全 configure参数中文详解

    ./configure --help--help 显示本提示信息--prefix=PATH 设定安装目录--sbin-path=PATH 设定程序文件目录--conf-path=PATH 设定配置文件 ...

  9. 循序渐进之Spring AOP(6) - 使用@Aspect注解

    前面几节的示例看起来让人沮丧,要记忆如此多的接口.类和继承关系,做各种复杂的配置.好在这些只是一种相对过时的实现方式,现在只需要使用@Aspect注解及表达式就可以轻松的使用POJO来定义切面,设计精 ...

  10. IE内嵌google chrome frame解决浏览器兼容问题

    IE内嵌google chrome frame解决浏览器兼容问题  http://www.cnblogs.com/xwdreamer/archive/2013/12/17/3477776.html 参 ...