当系统针对约束计算出多于一个可行解的时候就会出现有歧义的布局错误,大致可以分为两大错误:
Autolayout指南·调试 AutoLayout·无法满足的布局
当系统无法为当前的约束集合找到可行解时就会出现无法满足的布局。两个或更多所需的约束会因为它们不能同时为真而冲突。
AutoLayout指南·概述·AutoLayout Without Constraints
Stack View 提供了一种简单的方式,可以不引入复杂的约束就能运用 AutoLayout 的特性构建用用户界面。一个 StackView 可以定义一行或者一列的用户界面元素。StackView 运用以下属性来调整这些元素。
AutoLayout指南·概述·理解AutoLayout
[原地址](https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/index.html#//apple_ref/doc/uid/TP40010853-CH7-SW1)
AutoLayout指南·AutoLayout Cookbook·intrinsic content size 视图
接下来的示例将会使用一些有 intrinsic content size 的 view。一般来说,intrinsic content size 可以简化布局,减少所需约束的数目,但是使用 intrinsic content size 又经常需要设置 view 的 content-hugging 和 compression-resistance(CHCR)优先级,这会增加额外的复杂度。
AutoLayout指南·概述·详解约束
AutoLayout 用一系列的线性约束来实现视图层级的布局,每一个约束对应一个等式。你的目标就是声明一系列的等式,这些等式有且仅有一个可能的解。
Autolayout指南·调试 AutoLayout·错误类型
AutoLayout 中的错误可以大致分为三大类
AutoLayout指南·AutoLayout Cookbook·简单约束
接下来的例子中将使用一些相对简单的例子实现一些常用的布局效果,这些例子可以作为基础构建块用于组建更大更复杂的布局。
对 GIF 的裁剪与展示
GIF 裁剪过程可以大致分为三步
Block 深入学习
Block 是 C 语言的扩充功能,实质是带有局部变量的匿名函数,通过 clang 我们可以探究 Block 的底层实现及内存管理机制。