## 简介
- 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的使用的更多相关文章

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

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

  2. 学习SDAutoLayout第三方库的用法总结

    ---恢复内容开始--- 在做图文混排计算高度我觉得SDAutoLayout布局是最好用的第三方库了,这里学习SDAutoLayout用法总结一下 用法介绍: ) 方法名中带有“SpaceToView ...

  3. iOS SDAutoLayout图文混排-共享

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #526eda } span.s1 { color: #4dbf5 ...

  4. SDAutolayout图片大小根据数量变化

    只需要在自定义的PhotoContainerView中做一下判断就可以了 ) { [self setupAutoWidthFlowItems:[temp copy] withPerRowItemsCo ...

  5. AFNetworking 3.0 源码解读(五)之 AFURLSessionManager

    本篇是AFNetworking 3.0 源码解读的第五篇了. AFNetworking 3.0 源码解读(一)之 AFNetworkReachabilityManager AFNetworking 3 ...

  6. button自适应宽度 并根据屏幕宽自动换行排列

    这是一个封装好的类TagListView, 1. 只需要调用两个方法 设置宽度,间距,边距 并赋给它需要显示的字符串数组; 2. 遵循tagListView的协议, 并实现返回buttonView的方 ...

  7. Masonry和FDTemplateLayoutCell 结合使用示例Demo

    我们知道,界面布局可以用Storyboard或Xib结合Autolayout实现,如果用纯代码布局,比较热门的有Masonry.SDAutoLayout,下面的简单demo,采用纯代码布局,实现不定高 ...

  8. iOS常用第三方开源框架和优秀开发者博客等

    博客收藏iOS开发过程好的开源框架.开源项目.Xcode工具插件.Mac软件.文章等,会不断更新维护,希望对你们有帮助.如果有推荐或者建议,请到此处提交推荐或者联系我. 该文档已提交GitHub,点击 ...

  9. IOS 开发中要注意的事项

    1.关于拍摄 TGCameraViewController – 基于 AVFoundation 的自定义相机.样式漂亮,轻量并且可以很容易地集成到 iOS 项目中.不会内存吃紧 2.block 中对控 ...

随机推荐

  1. c#动态类型Dynamic

    需引用System.Dynamic命名空间 来源:http://www.cnblogs.com/ryanding/archive/2010/12/09/1900106.html dynamic Cus ...

  2. HDU_5810_数学,概率,方差

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5810 大意:将n个球往m个盒子中投,每个球被投入每个盒子的概率相等,求方差. 看题解说,这是二项分布( ...

  3. Dispatch Queues and Thread Safety

    Dispatch Queues and Thread Safety It might seem odd to talk about thread safety in the context of di ...

  4. excel 处理方法

    //.方法一:采用OleDB读取EXCEL文件: //打开excel 返回指定表中的所有数据 public DataSet ExcelToDS(string Path) { string strCon ...

  5. 前端开发—HTML

    HTML介绍 web服务的本质 import socket sk = socket.socket() sk.bind(("127.0.0.1", 8080)) sk.listen( ...

  6. 神奇的splay树

    神奇的splay树 总结 splay树是一种BST,其通过不断的splay操作维持树的平衡:其基本思想是将频率高的点(实际是每次查找的点)通过splay操作旋转到树根 核心操作: update(x): ...

  7. 慕课网页面app的滑动

    #coding=utf-8from appium import webdriver def get_driver(): desc={ "platformName":"An ...

  8. Hexo系列(二) 配置文件详解

    Hexo 是一款优秀的博客框架,在使用 Hexo 搭建一个属于自己的博客网站后,我们还需要对其进行配置,使得 Hexo 更能满足自己的需求 这里所说的配置文件,是位于站点根目录下的 _config.y ...

  9. POJ 3762 The Bonus Salary!

    The Bonus Salary! Time Limit: 2000ms Memory Limit: 65536KB This problem will be judged on PKU. Origi ...

  10. 洛谷 P3369 BZOJ 3224 【模板】普通平衡树(Treap/SBT)

    题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入x数 删除x数(若有多个相同的数,因只删除一个) 查询x数的排名(若有多个相同的数,因输出最小的排名) 查询 ...