iOS开发入门教程外篇之自动布局Auto Layout
来源:互联网 发布:nginx 跳转到指定目录 编辑:程序博客网 时间:2024/05/16 15:48
原文链接: http://zh.5long.me/2015/ios-ui-autolayout/
本文谢绝转载,如需转载需征得作者本人同意,谢谢。
前言
随着iOS设备屏幕尺寸的增加,iOS开发者也面临一个Android开发者的问题:屏幕适配。以前只有两种屏幕是还可以用代码去适配,但随着屏幕尺寸的增多,势必会造成代码的堆积,必须寻找其它解决方案,加上苹果的强硬态度,我们终将使用Auto Layout,不管是手写代码还是Interface Builder,使用自动布局都会带来一些好处,当然,前提是能很好地理解Autolayout,否则将会带来意想不到的麻烦。
苹果官方指南(Auto Layout Guide)
苹果官方关于Auto Layout的介绍:Auto Layout Guide,看完之后对Auto Layout就有大概的了解了。其中包括:基本概念、在Interface Builder中使用、在代码中使用、处理冲突以及Visual Format Language。
在Interface Builder使用Auto Layout
在Interface Builder下使用Auto Layout有两篇经典的教程:
- Beginning Auto Layout Tutorial in iOS 7: Part 1
- Beginning Auto Layout Tutorial in iOS 7: Part 2
其中第一篇有中文翻译版:开始iOS 7中自动布局教程(一)
看完这两篇基本就入门了,加上自己的琢磨,就可以在Interface Builder下使用Auto Layout了。
在代码中使用Auto Layout
用代码写UI或者运行时要改变界面布局就得在代码中使用Auto Layout,其主要就是添加Constraints。主要用到 NSLayoutConstraint的两个方法:constraintsWithVisualFormat:options:metrics:views:
和constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:
。为什么会有两个方法,苹果解释说前一个使用visual format language,是一种可视化较好的表达方式,但是不能处理视图间固定的比例(如:imageView.width = 2 * imageView.height),所以就加了后者。
关于Auto Layout在代码中的用法请参考苹果官方文档:Working with Auto Layout Programmatically
Visual Format Language(简称VFL)
说它是一种语言有点夸张,其实就是一种标记方式。Visual Format Language的句法官方也有说明,参考Visual Format Language,就是把在Interface Builder的操作转化成字符串。比如:[button]-[textfield]
就表示视图button和视图textfield的水平间距保存标准距离(8),如下图:
Auto Layout的扩展
Auto Layout的使用并不是那么的浪漫,管理布局的约束有时候也会很复杂。当然,也不必悲观,在GitHub上已有不少Auto Layout的扩展了,如:Masonry、Snappy、PureLayout、Cartography等,这些能帮你很多忙。
Masonry是一个轻量级的布局框架,代码及例子托管在GitHub上https://github.com/Masonry/Masonry,Masonry把Auto Layout冗长的代码变动简短,并且可读性更高,当然,错误也更少,值得一试。
其它三个框架还未研究,暂不讨论。
结语
本文简要的介绍了Auto Layout及它的扩展,详细的教程及说明请打开链接查看。
- iOS开发入门教程外篇之自动布局Auto Layout
- iOS自动布局(Auto Layout
- iOS自动布局-Auto Layout
- iOS自动布局Auto Layout 与 SizeClass
- iOS 中 Auto Layout(自动布局)
- 自动布局auto layout
- iOS 自动布局 Auto Layout 入门 02 使用自动布局
- iOS 9 Auto Layout界面自动布局系列-自适应布局
- iOS开发笔记--使用Auto Layout中的VFL(Visual format language)--代码实现自动布局
- iOS开发笔记--使用Auto Layout中的VFL(Visual format language)--代码实现自动布局
- 【iOS界面开发】Objective-C自动布局(Auto Layout & SizeClass)
- iOS开发笔记--使用Auto Layout中的VFL(Visual format language)--代码实现自动布局
- iOS开发笔记--使用Auto Layout中的VFL(Visual format language)--代码实现自动布局
- iOS开发笔记--使用Auto Layout中的VFL(Visual format language)--代码实现自动布局
- iOS开发之Auto Layout入门
- iOS 开发实践之 Auto Layout
- iOS开发之Auto Layout入门
- iOS 开发实践之 Auto Layout
- [7]智能指针boost::weak_ptr
- 浅谈移动开发(一)趋势
- 杂七杂八 - sublime 快捷键
- uva839 - Not so Mobile 入门经典II 第六章数据结构基础 例题6-9
- 以下关于汇编语言的叙述中,错误的是
- iOS开发入门教程外篇之自动布局Auto Layout
- 掉金币和血条
- Cocos2d 3.3 lua Camera使用
- 的是否能感到十分动感
- 《深入理解Python》读书笔记Ⅴ
- dp px sp区别
- JAVA
- JQuerymobile中使用iscroll5无法滚动的问题。
- socket 多客户端