什么是Autolayout
2017-04-27 20:04
148 查看
Autolayout是一种“自动布局”技术,专门用来布局UI界面的
Autolayout自iOS 6开始引入,由于Xcode 4的不给力,当时并没有得到很大推广
自iOS 7(Xcode 5)开始,Autolayout的开发效率得到很大的提升
苹果官方也推荐开发者尽量使用Autolayout来布局UI界面
Autolayout能很轻松地解决屏幕适配的问题
Autoresizing仅仅能解决子控件和父控件之间的相对关系问题
相比之下,Autolayout的功能比Autoresizing强大很多
Autolayout解决任何控件之间的相对关系问题
参照:在添加约束时,是依照谁来添加(可以是父控件或者兄弟控件)
控件的frame不匹配所添加的约束, 比如
比如约束控件的宽度为100, 而控件现在的宽度是110
错误
缺乏必要的约束, 比如
只约束了宽度和高度, 没有约束具体的位置
两个约束冲突, 比如
1个约束控件的宽度为100, 1个约束控件的宽度为110
Autolayout自iOS 6开始引入,由于Xcode 4的不给力,当时并没有得到很大推广
自iOS 7(Xcode 5)开始,Autolayout的开发效率得到很大的提升
苹果官方也推荐开发者尽量使用Autolayout来布局UI界面
Autolayout能很轻松地解决屏幕适配的问题
Autoresizing
在Autolayout之前,有Autoresizing可以作屏幕适配,但局限性较大,有些任务根本无法完成(Autoresizing只能设置自身和父控件之间的关系)Autoresizing仅仅能解决子控件和父控件之间的相对关系问题
相比之下,Autolayout的功能比Autoresizing强大很多
Autolayout解决任何控件之间的相对关系问题
Autolayout的2个核心概念
约束:通过给控件添加约束,来决定控件的位置和尺寸参照:在添加约束时,是依照谁来添加(可以是父控件或者兄弟控件)
Autolayout的警告和错误
警告控件的frame不匹配所添加的约束, 比如
比如约束控件的宽度为100, 而控件现在的宽度是110
错误
缺乏必要的约束, 比如
只约束了宽度和高度, 没有约束具体的位置
两个约束冲突, 比如
1个约束控件的宽度为100, 1个约束控件的宽度为110
相关文章推荐
- Autolayout约束动画化(卖什么萌!)
- 编程的至高境界是什么?
- 什么是Suid shell?
- 最近有什么厉害的计算机病毒?
- SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON 什么意思 sql server 2005 2008
- 什么是重要的事情?
- Qt SDK安装时Post mortem debugger的含义是什么
- 什么是UML(UML总结)
- C++编译器到底能帮我们把代码优化到什么程度?
- 没了健康谈理想又有什么意义
- 刘宇凡:什么是内链?什么是外链?
- 从输入 URL 到页面加载完的过程中都发生了什么事情 —— 网络优化篇
- 【基础常识】什么是main函数及变量的声明和定义
- Android Intent action有什么用???
- betterystats.bin 是干什么用的
- 什么是DES安全算法
- WebAPi返回类型到底应该是什么才合适,这是个问题?
- 左转弯待转区,什么时候能进,什么时候不能进?
- gulp是用来干什么的?(概念)
- 种仪wWW很995QQ不论什么995QQ嬛了很久CoM呦