你要的AutoLayout学习资料都在这里

jopen 9年前

AutoLayout 第三方库

PureLayout
自动布局

Masonry
自动布局

如果硬要用官方的VFL(Visual Format Language)
官方的VFL

Cartography
Swift-自动布局

SnapKit
Masonry的Swift移植版

UIView-FDCollapsibleConstraints
AutoLayout辅助工具

Neon
A powerful Swift programmatic UI layout framework.

Sketch-Constraints
Sketch插件类似Autolayout

andyAutoLayout
UIView的Autolayout类目

SDAutoLayout
一句代码添加Autolayout


AutoLayout学习文章

1、如何使用masonry设计复合型cell
@串哥:其实早在@sunnyxx同学发布UIView-FDCollapsibleConstraints的时候 我就说要写一下怎么用代码来稍微麻烦的实现复用的问题 但是一直各种没时间(主要是我的办法太复杂 - -) 正好看到@叶孤城同学也说了一下他的解决办法 所以我来说一下我是如何解决这个问题的。。。

2、自动布局10 Things You Need to Know About Cocoa Auto Layout – Ole Begemann
10 Things You Need to Know About Cocoa Auto Layout-译文
第一次使用Cocoa Auto Layout时,感觉它与Cocoa开发者所熟知的springs-struts模式有很大的不同。尽管Auto Layout有点复杂,但我发现只需要了解一些基本规则就可以使用它。本文就来列出这些规则。。。

4、一篇厚道的Autolayout及VFL经验分享
Cocoa autolayout出来蛮久了。以前多次想去深入研究一下,每次都很蛋疼无序。这东西是在有些搞。尤其习惯了code写布局的。看到Visual format language,简直要掀桌子。
搜教程,满世界都是,没有一个讲得透彻的。例子空洞。你们就只会3个控件横向布局对法?
浑浑噩噩看了多篇。有了点总结。槽不多吐了。简单讲讲。

5、AutoLayout 实现固定宽度动态高度的 ScrollView
作为一个iOS 开发者,很多情况下会需要把一个和屏幕等宽的 contentview 添加到一个 scollrview 内部中。大多数的 app 需要有响应式布局,所以使用 Autolayout 可谓明智之选。第一次学习 scrollviews 时,你或许会觉得碉堡了。但它们奇怪的规则也会令人有点沮丧。。

6、有了Auto Layout,为什么你还是害怕写UITabelView的自适应布局? - IOS - 伯乐在线
Apple 算是最重视应用开发体验的公司了.从Xib到StoryBoard,从Auto Layout到Size Class,每一次的更新,都会给iOS应用的开发带来不小的便利.但是,对于绝对多数iOS攻城狮来说,我们依然还是很害怕写UITabelVIew的自适应布局.当然,害怕不是因为我们不会写,或者本身有什么特殊的技术点,而是因为太麻烦.当然,文章的后半部分,会给出相应的解决方案,毕竟本文不是为了吐槽而吐槽。。。

7、iOS自动布局高级用法及纯手码约束写法 - 董铂然 - 博客园
本文主要介绍几个我遇到并总结的相对高级的用法(当然啦牛人会觉得这也不算什么)。 简单的storyboard中上下左右约束,固定宽高啥的用法在这里就不做赘述了。
autolayout自动布局是iOS6以后出现的,但是在开始的一段时间里大家并不怎么会用,都是一上来先勾掉。之后随着5s,iPhone6的出现屏幕多种多样。用多层if来判断尺寸已经完全hold不住了才开始学习自动布局。
在这之前有个叫自动伸缩的autoresizing属性,这个主要用于一个控件和自己父控件之间的关系。只有autolayout才真正可以在任意两个控件中建立关系。

8、寒哥细谈之AutoLayout全解
@寒哥:看到群中好多朋友还停留在Frame布局的痛苦时代,以及有些开发者接手别人的就项目发现布局一团乱。而且没有启动图的时候并不是真正真正适配iPhone 6(S)、iPhone6(S) Plus等设备 。寒哥准备尽可能详细的讲一讲我所掌握的AutoLayout 。。。

9、使用Autolayout实现UITableView的Cell动态布局和高度动态改变 - coding with objc & swift
有人在stackoverflow上问了一个问题:
如何在UITableViewCell中使用Autolayout来实现Cell的内容和子视图自动计算行高,并且能够保持平滑滚动的?
这个问题得到了300+的支持和450+的收藏,答案得到了730+的支持,很详细的说明了如何在iOS7和iOS8上实现UITableView的动态行高功能,并且这个答案对实现UICollectionView的动态行高也具有参考意义。所以在这里将这个答案翻译了一下,希望对大家有所帮助。以下是答案的全文翻译。。。

10、【详解】深入剖析Auto Layout,分析iOS各版本新增特性
@戴铭:先前写到的一篇Masonry心得文章里已经提到了很多AutoLayout相关的知识,这篇我会更加详细的对其知识要点进行分析和整理。

11、AutoLayout Tip 2:让 AutoLayout 与 UIScrollView 合作无间
一些值得记录的 AutoLayout 用法。。。

12、关于 Autolayout 的暖心 tips (一) - Swift中国
刚开始写UI界面的时候, 经验丰富的iOS程序猿都会推荐用纯代码手写UI, 并指出Autolayout诸多不足之处: 1)不好维护 2)产品脑洞大开时, 以前写的约束很可能要推翻重来 .
其实, 除了这些缺点, 相信大家也越来越多的发现, 其实Autolayout还是很好用的, 好用到根本不想手写代码了...
不过, 对于iPhone不同设备的屏幕适配, 依旧是个棘手的问题...因为每次去面试都会被问到这个问题, "你是如何用autolayout进行适配的?"
这里讨论一个比较常见的情况。。。

13、Auto Layout中的VFL使用教程(译) | One Punch Man
Auto Layout的可视格式化语言(以下简称VFL)允许使用者通过ASCII-art格式化字符串定义约束。用一行简单的代码,你可以定义多个水平或垂直方向的约束。对比一个一个加约束,这样可以可以节省很多代码量。在这个教程中,你可以用VFL做下面这些事情哦:!
构建水平和垂直的约束
在VFL中使用views描述
在VFL中使用metrics
使用layout options去关联其他界面元素
使用layout guides处理视图的上下边距(译者:比如UINavigationBar
。。。

14、【官方】Auto Layout Guide: Understanding Auto Layout
Auto Layout dynamically calculates the size and position of all the views in your view hierarchy, based on constraints placed on those views. For example, you can constrain a button so that it is horizontally centered with an Image view and so that the button’s top edge always remains 8 points below the image’s bottom. If the image view’s size or position changes, the button’s position automatically adjusts to match.

This constraint-based approach to design allows you to build user interfaces that dynamically respond to both internal and external changes.

15、Auto Layout Magic: Content Sizing Priorities — KrakenDev
请自带翻译功能。

16、孕孕的三个问题之——使用 Auto Layout 之后什么时候才能获得正确的 frame? | Auto Layout Club
使用过 Auto Layout 的人肯定都遇到过获取不到真实 frame 的情况,而大部分人经过简单搜索都能得到一个满意的解决方案:在想获取真实 frame 之前调用一下 self.view.layoutIfNeeded(),这是一个能用但是并不好的方法:进行了额外的毫不需要的 frame 计算。
我们从 View Controller 的生命周期来分析这个问题:
。。。

17、有了Auto Layout,为什么还怕写UITabelView的自适应布局? - IOS - 伯乐在线
Apple 算是最重视应用开发体验的公司了.从Xib到StoryBoard,从Auto Layout到Size Class,每一次的更新,都会给iOS应用的开发带来不小的便利.但是,对于绝对多数iOS攻城狮来说,我们依然还是很害怕写UITabelVIew的自适应布局.当然,害怕不是因为我们不会写,或者本身有什么特殊的技术点,而是因为太麻烦.当然,文章的后半部分,会给出相应的解决方案,毕竟本文不是为了吐槽而吐槽.

欢迎补充。

来自: http://www.jianshu.com/p/dc0b53da41ea