Masonry的简单使用(一)

一、新建工程

二、导入Masonry,可从我的GitHub上获取"Masonry":https://github.com/sycFuture/Masonry

三、填入如下代码

- (void)viewDidLoad {

[super viewDidLoad];

UIView *greenView = UIView.new;

greenView.backgroundColor = UIColor.greenColor;

greenView.layer.borderColor = UIColor.grayColor.CGColor;

greenView.layer.borderWidth = 2;

[self.view addSubview:greenView];

UIView *redView = UIView.new;

redView.backgroundColor = UIColor.redColor;

redView.layer.borderColor = UIColor.cyanColor.CGColor;

redView.layer.borderWidth = 2;

[self.view addSubview:redView];

UIView *blueView = UIView.new;

blueView.backgroundColor = UIColor.blueColor;

blueView.layer.borderColor = UIColor.purpleColor.CGColor;

blueView.layer.borderWidth = 2;

[self.view addSubview:blueView];

UIView *orangeView = UIView.new;

orangeView.backgroundColor = UIColor.orangeColor;

orangeView.layer.borderColor = UIColor.brownColor.CGColor;

orangeView.layer.borderWidth = 2;

[self.view addSubview:orangeView];

// 使这三个控件等高

CGFloat padding = 10;//貌似是控件之间的距离

[greenView mas_makeConstraints:^(MASConstraintMaker *make) {

//设置greenView距离顶部的高度和距离左侧的高度均为padding

make.top.left.mas_equalTo(padding);

//设置greenView距离blueView的距离为padding

make.bottom.mas_equalTo(blueView.mas_top).offset(-padding);

//设置左侧距离redView的距离为padding

make.right.mas_equalTo(redView.mas_left).offset(-padding);

//设置greenView与redView等宽

make.width.mas_equalTo(redView);

}];

[redView mas_makeConstraints:^(MASConstraintMaker *make) {

make.top.bottom.height.mas_equalTo(greenView);

make.left.mas_equalTo(greenView.mas_right).offset(padding);

make.right.mas_equalTo(-padding);

}];

[blueView mas_makeConstraints:^(MASConstraintMaker *make) {

make.top.mas_equalTo(greenView.mas_bottom).offset(padding);

make.left.mas_equalTo(padding);

make.right.mas_equalTo(orangeView.mas_left).offset(-padding);

make.bottom.mas_equalTo(-padding);

make.height.mas_equalTo(greenView);

make.width.mas_equalTo(orangeView);

}];

[orangeView mas_makeConstraints:^(MASConstraintMaker *make) {

make.top.height.bottom.mas_equalTo(blueView);

make.left.mas_equalTo(blueView.mas_right).offset(padding);

make.right.mas_equalTo(-padding);

}];

}

四、运行即可看到如下效果

Masonry的简单使用(一)的更多相关文章

  1. iOS开发 Masonry的简单使用

    首先,在正式使用Masonry之前,我们先来看看在xib中我们是如何使用AutoLayout     从图中我们可以看出,只要设置相应得局限,控制好父视图与子视图之间的关系就应该很ok的拖出你需要的需 ...

  2. 第三方框架-纯代码布局:Masonry的简单使用

    Masonry是一个对系统NSLayoutConstraint进行封装的第三方自动布局框架,采用链式编程的方式提供给开发者API.系统AutoLayout支持的操作,Masonry都支持,相比系统AP ...

  3. SDAutoLayout:比masonry更简单易用的自动布局库

    SDAutoLayout:一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于做最简单易用的AutoLayout库. [SDAutoLa ...

  4. Masonry的简单使用

    #import "RootViewController.h" #import "Masonry.h" @interface RootViewController ...

  5. Coding源码学习第四部分(Masonry介绍与使用(三))

    接上篇继续进行Masonry 的学习. (12)tableViewCell 布局 #import "TableViewController.h" #import "Tes ...

  6. 自动布局库--Masonry使用

    参考资料(戳这里): >  Masonry官网 >  Masonry介绍与使用实践(快速上手Autolayout) >  iOS 开发实践之 Auto Layout >  Ma ...

  7. iOS 资源大全

    这是个精心编排的列表,它包含了优秀的 iOS 框架.库.教程.XCode 插件.组件等等. 这个列表分为以下几个部分:框架( Frameworks ).组件( Components ).测试( Tes ...

  8. IOS中文版资源库

    Swift 语言写成的项目会被标记为  ★ ,AppleWatch 的项目则会被标记为 ▲. [转自]https://github.com/jobbole/awesome-ios-cn#librari ...

  9. 墙裂推荐 iOS 资源大全

    这是个精心编排的列表,它包含了优秀的 iOS 框架.库.教程.XCode 插件.组件等等. 这个列表分为以下几个部分:框架( Frameworks ).组件( Components ).测试( Tes ...

随机推荐

  1. InputStream转换为String, byte[] data = new byte[1024]详解

    /** * This file created at 2018年2月28日. * * Copyright (c) 2002-2018 Bingosoft, Inc. All rights reserv ...

  2. [翻译] FBNetworkReachability

    FBNetworkReachability You can use FBNetworkReachabilty class to get network reachability on iOS devi ...

  3. [转]Centos7下面配置静态IP

    修改网卡配置文件(操作前先备份一下该文件),/etc/sysconfig/network-scripts/ifcfg-enp0s3 ,如下: TYPE=Ethernet BOOTPROTO=stati ...

  4. 超强IIS站点工具一键设置PHP,支持多个PHP同时运行

    PHPWAMP8.8.8.8IN支持三大主流Web服务器:iis.apache.nginx NGINX站点管理.IIS站点管理.Apache站点管理均支持php多版本同时运行,无限自定义mysql.p ...

  5. SDN 第一次上机作业

    第一题 拓扑: 测试连通性: 第二题 拓扑: 测试连通性: 第三题 拓扑: 测试连通性:

  6. Maven实战(九)Maven仓库简介

    目录 一.作用 Maven仓库分为本地仓库和远程仓库,集中存放项目引用的jar包,无需将jar包放在程序中,结合Maven项目的pom.xml,使得项目管理jar包更容易,有以下几个优点: 对于项目来 ...

  7. xdebug安装及使用小结

    最近安装了一下xedug,并且学习了一下如何使用.安装xdebug的初衷是为了深入研究一下PHP的垃圾回收机制. Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪, ...

  8. 【原创】uWSGI http和http-socket说明

    http 和 http-socket的使用上有一些区别: http: 自己会产生一个http进程(可以认为与nginx同一层)负责路由http请求给worker, http进程和worker之间使用的 ...

  9. 解密虚拟 DOM——snabbdom 核心源码解读

    本文源码地址:https://github.com/zhongdeming428/snabbdom 对很多人而言,虚拟 DOM 都是一个很高大上而且远不可及的专有名词,以前我也这么认为,后来在学习 V ...

  10. [USACO19FEB]Moorio Kart

    题目 我们的神仙教练在考试里放了这道题,当时我非常惊讶啊 背包是\(O(n^3)\)的吧明明是带根号的好吧,那既然要优化的话 NTT!什么时候我们教练会在考试里放多项式了 模数\(1e9+7\)? 任 ...