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 中对控 ...
随机推荐
- mvc自定义控件
//自定义一个DatePicker.cshtml文件@helper Init() { <link href="~/Content/mobiscroll.custom-2.5.0.min ...
- lucene7.1.0实现搜索文件内容
Lucene的使用主要体现在两个步骤: 1 创建索引,通过IndexWriter对不同的文件进行索引的创建,并将其保存在索引相关文件存储的位置中. 2 通过索引查寻关键字相关文档. 首先,我们需要定义 ...
- 爬取表格类网站数据并保存为excel文件
本文转载自以下网站:50 行代码爬取东方财富网上市公司 10 年近百万行财务报表数据 https://www.makcyun.top/web_scraping_withpython6.html 主要学 ...
- sql server备份策略
https://www.cnblogs.com/fengzongming/archive/2018/08/29/9530616.html
- 目录-Linux
Linux文件系统: Linux: glibc 程序编译方式: 动态链接 静态编译 进程的类型: 终端:硬件设备,关联一个用户接口 与终端相关:通过终端启动 与终端无关:操作引导启动过程当中自动启动 ...
- react 父组件 向 子组件 传值
父组件 import React, { Component } from 'react'; import Test from './component/test'; //声明welcome组件 cla ...
- hdu 1250 简单大整数加法
#include<stdio.h> #include<string.h> #define N 3100 int a[N],b[N],c[N],d[N],e[N]; int ma ...
- 服务器监控(包括性能指标与web应用程序)
http://blog.csdn.net/yao123long/article/details/53142029 http://blog.csdn.net/heyongluoyao8/article/ ...
- [bzoj1610][Usaco2008 Feb]Line连线游戏_暴力枚举
Line连线游戏 bzoj-1610 Usaco-2008 Feb 题目大意:Farmer John最近发明了一个游戏,来考验自命不凡的贝茜.游戏开始的时 候,FJ会给贝茜一块画着N (2 <= ...
- sublime text 插件emmet快捷命令
原文链接:http://www.17yaobai.com/?p=255 语法: 后代:> 缩写:nav>ul>li <nav> <ul> <li> ...