## 简介
- 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. style 使用lang = ‘scss’ 报错

    <style lang="scss" rel="stylesheet/scss" scoped> .export-wrapper{ } </s ...

  2. XX-Net的完整教程

    1.下载谷歌浏览器,安装. 2.百度搜索github,github中搜索XX-Net,下载稳定版 3.解压缩下载的文件夹,运行start.vbs文件.如果弹出管理员请求权限请允许,弹出防火墙警告,请允 ...

  3. css画圆

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...

  4. Idea 类注释和方法注释

    类注释 先打开Settings > Editor > File and Code Templates Includes Includes File Header 再随机新建个类就有类注释 ...

  5. python-pycharm windows安装

    pycharm_IDE安装 1. 首先先pycharm官网,或者直接输入网址:http://www.jetbrains.com/pycharm/download/#section=windows,下载 ...

  6. react-native页面间传递数据的几种方式

    1. 利用react-native 事件DeviceEventEmitter 监听广播 应用场景: - 表单提交页面, A页面跳转到B页面选人, 然后返回A页面, 需要将B页面选择的数据传回A页面. ...

  7. Codeforces 947E Perpetual Subtraction (线性代数、矩阵对角化、DP)

    手动博客搬家: 本文发表于20181212 09:37:21, 原地址https://blog.csdn.net/suncongbo/article/details/84962727 呜啊怎么又是数学 ...

  8. asp.net常用容器

    autofac就是ioc的第三方的IOC容器 unity也是IOC容器 掌握这两个容器就可以了,非常简单

  9. 洛谷——P1060 开心的金明

    https://www.luogu.org/problem/show?pid=1060#sub 题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的 ...

  10. K - Transformation

    K - Transformation HDU - 4578 思路:发现自己的错误竟然是zz般的少了一个取模   ε=ε=ε=(#>д<)ノ #include<cstdio> # ...