iOS PureLayout使用
PureLayout是iOS Auto Layout的终端API,强大而简单。由UIView、NSArray和NSLayoutConstraint类别组成。
PureLayout为大多数Auto Layout用例提供了一个开发者友好型的界面
github地址: https://github.com/PureLayout/PureLayout
看看这张图的布局

- 下面是在pureLayout中经常使用的五个参数(There are 5 specific attribute types, which are used throughout most of the API)
1.ALEdge
2.ALDimension
3.ALAxis
4.ALMargin available in iOS 8.0 and higher only
5.ALMarginAxis available in iOS 8.0 and higher only
大家直接照着下面代码敲一遍吧, 就差不多会了.
//
// ViewController.m
// PureLayoutDemo
//
// Created by Jackey on 2017/3/15.
// Copyright © 2017年 com.zhouxi. All rights reserved.
// #import <PureLayout.h> #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib. //蓝色view位于中心, 大小是50pt
UIView *blueView = [[UIView alloc] init];
[blueView setBackgroundColor:[UIColor blueColor]];
[self.view addSubview:blueView]; //注意要先添加到父件上, 再调整 //设置在父件中心
[blueView autoCenterInSuperview];
//设置大小
[blueView autoSetDimensionsToSize:CGSizeMake(50.0, 50.0)]; //红色view顶部与蓝色view底部位置一样, 左边与蓝色的右边一样, 宽度跟蓝色view一样, 高度40pt
UIView *redView = [[UIView alloc] init];
[redView setBackgroundColor:[UIColor redColor]];
[self.view addSubview:redView]; //设置红色view顶部跟蓝色view的底部对齐
[redView autoPinEdge:ALEdgeTop toEdge:ALEdgeBottom ofView:blueView]; //设置红色view的左边跟蓝色view的右边对齐
[redView autoPinEdge:ALEdgeLeft toEdge:ALEdgeRight ofView:blueView]; //设置红色view的宽度跟蓝色view的宽度一致
[redView autoMatchDimension:ALDimensionWidth toDimension:ALDimensionWidth ofView:blueView]; //设置红色view的高度为40
[redView autoSetDimension:ALDimensionHeight toSize:40.0]; //黄色view的顶部跟红色view的底部+10pt位置一致, 高度为25pt, 左右距父控件均为20pt
UIView *yellowView = [[UIView alloc] init];
[yellowView setBackgroundColor:[UIColor yellowColor]];
[self.view addSubview:yellowView]; //设置黄色view的顶部高度距离红色view底部10
[yellowView autoPinEdge:ALEdgeTop toEdge:ALEdgeBottom ofView:redView withOffset:10.0]; //设置黄色view的高度25
[yellowView autoSetDimension:ALDimensionHeight toSize:25.0]; //设置黄色view左边距离父件左边20
[yellowView autoPinEdgeToSuperviewEdge:ALEdgeLeft withInset:20.0]; //设置黄色view的右边距离父件右边20
[yellowView autoPinEdgeToSuperviewEdge:ALEdgeRight withInset:20.0]; //绿色view的顶部与黄色view的底部间距10, 与父view垂直居中, 高度是黄色view高度的两倍, 宽度是150
UIView *greenView = [[UIView alloc] init];
[greenView setBackgroundColor:[UIColor greenColor]];
[self.view addSubview:greenView]; //设置绿色view顶部高度距离黄色view底部10
[greenView autoPinEdge:ALEdgeTop toEdge:ALEdgeBottom ofView:yellowView withOffset:10.0]; //设置绿色view在父件垂直中心线上
[greenView autoAlignAxisToSuperviewMarginAxis:ALAxisVertical]; //设置绿色view高度是黄色view高度的2倍
[greenView autoMatchDimension:ALDimensionHeight toDimension:ALDimensionHeight ofView:yellowView withMultiplier:2.0]; //设置绿色view宽度为150
[greenView autoSetDimension:ALDimensionWidth toSize:150.0];
} - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} @end
显示结果:

iOS PureLayout使用的更多相关文章
- 【转】GitHub 排名前 100 的安卓、iOS项目简介
GitHub Android Libraries Top 100 简介 排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不 ...
- iOS 开源项目
在 Github 上 Star 太多了,有时候很难找到自己想要的开源库,所以在此记录下来.便于自己开发使用,也顺便分享给大家. 动画 awesome-ios-animation收集了iOS平台下比较主 ...
- Github上关于iOS的各种开源项目集合(强烈建议大家收藏,查看,总有一款你需要)
下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh - 下拉刷新控件. MJRefresh - 仅需一行代码就可以为UITableVie ...
- iOS 资源大全
这是个精心编排的列表,它包含了优秀的 iOS 框架.库.教程.XCode 插件.组件等等. 这个列表分为以下几个部分:框架( Frameworks ).组件( Components ).测试( Tes ...
- GitHub Top 100 的项目(iOS)
主要对当前 GitHub 排名前 100 的项目做一个简单的简介, 方便初学者快速了解到当前 Objective-C 在 GitHub 的情况. Android 版本的在此: https://gith ...
- 2016年GitHub 排名前 100 的安卓、iOS项目简介(收藏)
排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不相关的项目, 所以排名并不具备任何官方效力, 仅供参考学习, 方便初学者 ...
- iOS及Mac开源项目和学习资料【超级全面】
UI 下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITable ...
- 收集Github上的iOS控件和开发资料
文章来源:http://www.mobile-open.com/2015/85017.html 动画 awesome-ios-animation 收集了iOS平台下比较主流炫酷的几款动画框架 RCTR ...
- PureLayout和Masonry比较
一年前那时我做iOS开发,为了自动布局适配多种屏幕,我一般使用Masonry,后来偶然地在一个视频教程中发现老师使用了UIView+Autolayout(现在作者改名为PureLayout)自动布局, ...
随机推荐
- VS2013使用WebDeploy发布网站到IIS服务器
VS2013用Web Deploy方式发布网站到IIS服务器发布文档 VS版本:VS2013 服务器版本:Windows Server 2012 R2 IIS版本:IIS8.0 Web Deploy版 ...
- 如何在鼠标hover时改变标注的样式
如何在鼠标hover时改变标注的样式? ---------------- 教程 ----------------------- 首先创建1张地图 //初始化地图对象,加载地图 var map ...
- 玩转spring boot——结合阿里云持续交付
前言 在互联网项目中,项目测试.部署往往需要花费大量时间.传统方式是在本地打包.测试完毕程序,然后通过ftp上传至服务器,再把测试的配置文件修改为生产环境的配置文件,最后重新运行服务.这一过程如果交给 ...
- ASP.NET Forms身份认证
asp.net程序开发,用户根据角色访问对应页面以及功能. 项目结构如下图: 根目录 Web.config 代码: <?xml version="1.0" encoding= ...
- [转载] ping和telnet的区别
转载自:http://www.cnblogs.com/Jtianlin/p/4045021.html windown7下打开telnet功能: 控制面板 --- > 程序(小图标下直接到[程序和 ...
- 原生JS 购物车及购物页面的cookie使用
////////////////////////////////////购物页面 <!DOCTYPE html><html lang="en"><he ...
- OSS.Common获取枚举字典列表标准库支持
上篇(.Net Standard扩展支持实例分享)介绍了OSS.Common的标准库支持扩展,也列举了可能遇到问题的解决方案.由于时间有限,同时.net standard暂时还没有提供对Descrip ...
- 三层——c#版
首先,向大家通知一个好消息--我的三层终于实现了!!!这两天,一直在调一个bug一直链接不上数据库,弄得我死的心都有了.就在昨天,当我把一个","改成了":"后 ...
- matlab和C语言的break及continue测试
break和continue语句 有两个附加语句可以控制while和for循环:break和continue语句.break语句可以中止循环的执行和跳到end后面的第一句执行,而continue只中止 ...
- ionic-cordova 支付宝支付插件cordova-plugin-alipay-v2使用篇
支付宝WS_APP_PAY_SDK_BASE_2.0 <APP支付> 支付宝的cordova插件其实在github上已经有很多了,但是都已经是以前的版本了.在2016年11月的时候支付宝进 ...