SDAutoLayout的使用
## 简介
- IOS布局的三个阶段:MagicNumber -> AutoResizingMask -> AutoLayout
- 自动布局三大框架:UILayoutConstraint(原生),Masonry,SDAutoLayout
- 一个视图,两个方向(水平,垂直),四条约束
- [github地址](https://github.com/gsdios/SDAutoLayout)
## 基础
###### 属性
1. left,right,top,bottom;space
2. width,height;maxWidth,maxHeight,minWidth,minHeight
3. centerX,centerY;x,y 
4. offset(偏移量,原点在左上角,偏移远离值为正,偏移靠近值为负)
######关系
1. equalTo
2. spaceTo
3. ratioTo
4. is
######方法(Block)
```
leftEqualToView(<UIView>) //左边与目标左边齐平
rightEqualToView(<UIView>) //右边与目标右边齐平
topEqualToView(<UIView>) //顶边与目标顶边齐平
bottomEqualToView(<UIView>) //底边与目标底边齐平
centerXEqualToView(<UIView>) //中心点X坐标与目标中心点X坐标相同
centerYEqualToView(<UIView>) //中心点Y坐标与目标中心点Y坐标相同
widthEqualToHeight() //自身宽高相等
heightEqualToWidth() //自身高宽相等
```
```
leftSpaceToView(<UIView>,<CGFloat>) //左边到目标view的距离,当目标是父视图,参照的是目标的左边(同边),否则,参照的是目标的右边(对边)
rightSpaceToView(<UIView>,<CGFloat>) //右边到目标view的距离(同理)
topSpaceToView(<UIView>,<CGFloat>) //顶边到目标view的距离(同理)
bottomSpaceToView(<UIView>,<CGFloat>) //底边到目标view的距离(同理)
spaceToSuperView(UIEdgeInsetsMake(top, left, bottom, right)) //快捷设置到父视图的上左下右边距
```
```
centerXIs(<CGFloat>) //设置中心点X坐标
centerYIs(<CGFloat>) //设置中心点Y坐标
xIs(<CGFloat>) //原点x坐标
yIs(<CGFloat>) //原点y坐标
widthIs(<CGFloat>) //宽度
heightIs(<CGFloat>) //高度
maxWidthIs(<CGFloat>) //最大宽度
maxHeightIs(<CGFloat>)  //最大高度
minWidthIs(<CGFloat>) //最小宽度
minHeightIs(<CGFloat>) //最小高度
```
```
widthRatioToView(<UIView>,<CGFloat>) //宽度是目标宽度的多少倍
heightRatioToView(<UIView>,<CGFloat>) //高度是目标高度的多少倍
autoHeightRatio(<CGFloat>) //自身高宽比;特别的,label传入0,可实现文字高度的自适应
autoWidthRatio(<CGFloat>) //自身的宽高比
```
## 场景
######label的自适应
```
```
######并排(列)多个label的压伸
######imageview的自适应
######button的自适应
######通过子视图的布局确定父视图的size
######scrollview的contentsize
######cell的height
######并排(列)多个等宽(高)变间隙视图
######并排(列)多个变宽(高)等间隙视图
## 提示
- 先添加到父视图,再布局
- 目标视图必须是父视图或该父视图的子视图
- 由子视图确定父视图的size时,父视图变动的方向(宽/高),子视图必须能提供确切的值,最后设置父视图变动方向的约束(兜底)
- 不要以父视图变动的方向为参照物
- 当视图的某些约束需要数据才能确定时,先不设置,延后到得到数据的时候再设置
## 错误
SDAutoLayout的使用的更多相关文章
- SDAutoLayout:比masonry更简单易用的自动布局库
		SDAutoLayout:一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于做最简单易用的AutoLayout库. [SDAutoLa ... 
- 学习SDAutoLayout第三方库的用法总结
		---恢复内容开始--- 在做图文混排计算高度我觉得SDAutoLayout布局是最好用的第三方库了,这里学习SDAutoLayout用法总结一下 用法介绍: ) 方法名中带有“SpaceToView ... 
- iOS SDAutoLayout图文混排-共享
		p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #526eda } span.s1 { color: #4dbf5 ... 
- SDAutolayout图片大小根据数量变化
		只需要在自定义的PhotoContainerView中做一下判断就可以了 ) { [self setupAutoWidthFlowItems:[temp copy] withPerRowItemsCo ... 
- AFNetworking 3.0 源码解读(五)之 AFURLSessionManager
		本篇是AFNetworking 3.0 源码解读的第五篇了. AFNetworking 3.0 源码解读(一)之 AFNetworkReachabilityManager AFNetworking 3 ... 
- button自适应宽度 并根据屏幕宽自动换行排列
		这是一个封装好的类TagListView, 1. 只需要调用两个方法 设置宽度,间距,边距 并赋给它需要显示的字符串数组; 2. 遵循tagListView的协议, 并实现返回buttonView的方 ... 
- Masonry和FDTemplateLayoutCell 结合使用示例Demo
		我们知道,界面布局可以用Storyboard或Xib结合Autolayout实现,如果用纯代码布局,比较热门的有Masonry.SDAutoLayout,下面的简单demo,采用纯代码布局,实现不定高 ... 
- iOS常用第三方开源框架和优秀开发者博客等
		博客收藏iOS开发过程好的开源框架.开源项目.Xcode工具插件.Mac软件.文章等,会不断更新维护,希望对你们有帮助.如果有推荐或者建议,请到此处提交推荐或者联系我. 该文档已提交GitHub,点击 ... 
- IOS 开发中要注意的事项
		1.关于拍摄 TGCameraViewController – 基于 AVFoundation 的自定义相机.样式漂亮,轻量并且可以很容易地集成到 iOS 项目中.不会内存吃紧 2.block 中对控 ... 
随机推荐
- 大型工程多个目录下的Makefile写法
			1.前言 目前从事于linux下程序开发,涉及到多个文件,多个目录,这时候编译文件的任务量比较大,需要写Makefile.关于Makefile的详细内容可以参考网上流传非常广泛的<跟我一起写Ma ... 
- Monad (functional programming)
			In functional programming, a monad is a design pattern that defines how functions, actions, inputs, ... 
- fiddler抓包 IOS11以上系统
			想要使用fiddler对iphone X进行抓包,按照以前的配置方法,走一遍.还是抓不成,原来是因为IOS11操作系统中,安装完证书之后,还需要再手动信任证书才能正常抓包. 以下内容来自:https: ... 
- appium的截图
			在实际自动化项目运行过程中,很多时候App可以会出现各种异常,为了更好的定位问题,除了捕捉日志我们还需要对运行时的设备状态来进行截屏.从而达到一种“有图有真相”的效果. 截图方法 方法1 save_s ... 
- github+hexo(window10)
			一.申请github账户 二.先安装node.js.git 本地: 三.安装hexo(建立静态网页,用Markdown写博客) 1.创建文件地址 在合适的地方新建一个文件夹,用来存放自己的博客文件,比 ... 
- 【剑指Offer】18、二叉树的镜像
			题目描述: 操作给定的二叉树,将其变换为原二叉树的镜像. 解题思路: 求一棵树的镜像的过程:先前序遍历这棵树的每个结点,如果遍历到的结点有子结点,就交换它的两个子结点.当交换完所有的非 ... 
- windows的时间同步工具:w32time
			windows 客户端 官方文档自己排查可以看一下 如何在 Windows Server 中配置权威时间服务器 Windows Time Service Technical Reference Win ... 
- win10、win7 使用centos配置网络,可以让Xshell进行连接,虚拟机进行上网;
			系统:window 10 虚拟机VMware® Workstation 15 Pro Linux版本:CentOS-6.3 前提:关闭防火墙 如果是win7 系统可以不用第八步,如果不行可以试一下第八 ... 
- PAT 1072. Gas Station
			A gas station has to be built at such a location that the minimum distance between the station and a ... 
- 10.Spring注解+MyBatis+Servlet
			1.创建sql脚本 create table account ( id ) unsigned not null auto_increment primary key, account_number ) ... 
