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 中对控 ...
随机推荐
- 用cmd查看win8版本 激活等详细信息命令
Win+x===>选择以管理员身份运行,输入: slmgr /dlv 显示:最为详尽的激活信息,包括:激活ID.安装ID.激活截止日期slmgr /dli 显示:操作系统版本.部分产品密钥. ...
- count(*)实现原理+两阶段提交总结
count(*)实现原理 不同引擎的实现: MyISAM引擎把表的总行数存在了磁盘上,执行COUNT(*)就会直接返回,效率很高: InnoDB在count(*)时,需要把数据一行一行的从引擎里面取出 ...
- Python—字符串+变量
字符串转义字符格式化内建函数(后延)转义字符用一个特殊的方法表示出一系列不方便写出的内容,比如回车键,换行键,退格键借助反斜杠字符,一旦字符串中出现反斜杠,则反斜杠后面一个火几个字符表示已经不是原来的 ...
- ListUtil集合操作常用方法类
* 集合操作常用方法类. * <p> * * @author 柯 */ public class ListUtil { /** * 判断List不为空,非空返回true,空则返回false ...
- 类的定义与实例化、构造函数和初始化表(day04)
十三 类的定义与实例化 类的一般形式 class/struct 类名:继承表{ 访问控制限定符: 类名(形参表):初始化表{}//构造函数 ~类名(void){}//析构函数 返回类型 函数名(形参表 ...
- BZOJ 3514 GERALD07加强版 (LCT+主席树)
题目大意:给定n个点m条边无向图,每次询问求当图中有编号为[L,R]的边时,整个图的联通块个数,强制在线 神题!(发现好久以前的题解没有写完诶) 我们要求图中联通块的个数,似乎不可搞啊. 联通块个数= ...
- onunload与onbeforeunload事件解析 标签: 浏览器 2017-04-10 09:46 45人阅读 评论(0)
注:只测试了chrome和IE浏览器的表现情况 onunload事件 //JS Document window.onunload = onunload_message; function onunlo ...
- 1 java开发工具IDEA的使用
IntelliJ IDEA 2017.1汉化破解版安装图文教程(附汉化补丁) 注册码:http://idea.lanyus.com/ 点击在线生成 IntelliJ IDEA 2017.1正式版发布 ...
- 【例题4-3 uva 133】The Dole Queue
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 写个数组模拟链表 但注意,得用个辅助数组flag.. 不然可能会出现没能跳过中间的被占区域的情况. 比如 1 2 idx # # # ...
- dubbo-刷一遍用户指南(三)
想更好的使用dubbo,最好刷几遍用户指南,dubbo用户指南几乎包含了所有dubbo所有的特性 用户指南地址:https://dubbo.gitbooks.io/dubbo-user-book/de ...