Auto Layout改变了创建iOS用户界面的方式。它既灵活又强大,给予你对iOS用户界面前所未有的控制,但AutoLayout的难度也是众人皆知的。在《iOS Auto Layout开发秘籍(第2版)》中,享誉世界的iOS开发者和图书作者Erica Sadun为你揭开了迷雾,帮助你通过“示例讲解”这种最简单的方法来精通Auto Layout。
针对iOS 7和Xcode 5的完全更新,《移动开发经典丛书:iOS Auto Layout开发秘籍(第2版)》秉承了该系列的优良传统:清晰的解释、专业的提示、可靠的上佳实践——以及,最重要的一点,大量可学习和复用的代码。
Sadun采用循序渐进的方式解释了Auto Layout的思想、它的工作原理、适用范围,以及比预想更有用(更简单)的原因。Sadun为现实世界的各种iOS开发挑战提供了实际的解决方案,使用Auto Layout创建可交互的元素、动画等。
主要内容
◆ 掌握Auto Layout的基本概念、技术和方法
◆ 定义无歧义的、可满足的约束,这种约束能准确表达你的布局意图
◆ 克服Interface Builder中基于约束的用户界面设计的障碍
◆ 使用视觉格式表示项是如何垂直和水平布局的
◆ 使用度量字典和布局选项使视觉格式更灵活
◆ 调试约束,解密那些令人费解的Xcode日志信息
◆ 使用描述性技术揭示和表达设计中的自然关系
◆ 在Mac OS X 应用中使用iOS AutoLayout技术
第1章 Auto Layout介绍
1.1 Auto Layout的由来
1.2 使用Auto Layout的好处
1.2.1 几何关系
1.2.2 内容驱动的布局
1.2.3 优先级规则
1.2.4 检查和模块化
1.2.5 与Autosizing兼容
1.3 约束
1.3.1 可满足性
1.3.2 充分性
1.4 约束属性
1.5 关于那些丢失的视图
1.5.1 欠约束导致丢失视图
1.5.2 规则不一致导致丢失视图
1.5.3 追踪丢失的视图
1.6 有歧义的布局
1.6.1 纠正有歧义的布局
1.6.2 可视化约束
1.7 内在内容大小
1.8 压缩阻力和内容吸附
1.9 图像装饰元素
1.9.1 对齐矩形
1.9.2 可视化对齐矩形
1.9.3 对齐inset
1.9.4 声明对齐矩形
1.9.5 实现对齐矩形
1.10 练习
1.11 小结
第2章 约束
2.1 约束类型
2.2 优先级
2.2.1 冲突的优先级
2.2.2 枚举型优先级
2.3 内容大小约束
2.3.1 内在内容大小
2.3.2 内容吸附
2.3.3 压缩阻力
2.3.4 通过代码设置内容大小约束
2.3.5 在IB中设置内容大小约束
2.4 构建布局约束
2.5 布局约束类
2.5.1 约束数学
2.5.2 第一项和第二项
2.6 创建布局约束
2.6.1 构建NSLayoutConstraint实例
2.6.2 一元约束
2.6.3 不含视图项的约束是不合法的
2.7 视图项
2.8 约束、层次结构与边界系统
2.9 安装约束
2.10 比较约束
2.11 布局约束法则
2.12 练习
2.13 小结
第3章 Interface Builder布局
3.1 在IB中设计
3.2 禁用Auto Layout
3.2.1 在代码中退出Auto Layout
3.2.2 结合Autosizing和Auto Layout
3.3 基本布局以及自动生成的约束
3.3.1 推测的约束
3.3.2 歧义消除约束
3.3.3 尺寸约束
3.4 IB元素指南
3.4.1 约束列表
3.4.2 Xcode标签
3.4.3 添加Xcode标识
3.5 添加约束
3.5.1 拖曳
3.5.2 钉固和对齐
3.6 预览布局
3.7 检查约束
3.8 视图的Size Inspector
3.8.1 框架矩形和布局矩形
3.8.2 其他Size Inspector项
3.9 处理菜单
3.9.1 更新框架和约束
3.9.2 添加和重置约束
3.9.3 清理约束
3.10 约束/尺寸调整弹出菜单
3.10.1 Descendants选项
3.10.2 Siblings and Ancestors选项
3.11 视图丢失问题
3.12 平衡请求
3.13 混合布局
3.13.1 创建一个用于测试的nib文件
3.13.2 在代码中加入nib文件
3.13.3 混合布局的优点
3.14 移除IB生成的约束
3.15 练习
3.16 小结
第4章 可视化格式
4.1 可视化格式约束介绍
4.2 选项
4.2.1 对齐
4.2.2 省略选项
4.3 变量绑定
4.3.1 间接的问题
4.3.2 间接的替代方案
4.4 度量
4.5 格式字符串结构
4.6 方向
4.7 视图名称
4.8 连接
4.8.1 空连接
4.8.2 标准间隔
4.8.3 数字间隔
4.8.4 引用父视图
4.8.5 与父视图的间隔
4.8.6 灵活间隔
4.8.7 圆括号
4.8.8 负数
4.8.9 优先级
4.8.10 多视图
4.9 视图尺寸
4.10 格式字符串部件
4.11 出错
4.12 NSLog和可视化格式
4.13 约束到父视图
4.14 视图拉伸
4.15 约束尺寸
4.16 创建列或者行
4.17 匹配尺寸
4.18 为何不能分布视图
4.18.1 伪分布视图(第1部分:等中心)
4.18.2 伪分布视图(第2部分:间隔视图)
4.19 练习
4.20 小结
第5章 调试约束
5.1 Xcode反馈
5.1.1 开发反馈
5.1.2 编译器反馈
5.1.3 运行时
5.2 阅读控制台日志
5.2.1 示例:自动尺寸调整问题
5.2.2 解决方案:关闭自动尺寸调整转换
5.2.3 示例:Auto Layout冲突
5.2.4 解决方案:调整优先级
5.2.5 原子法
5.2.6 平衡法
5.2.7 追踪歧义
5.3 检查约束日志
5.3.1 示例:对齐约束
5.3.2 示例:标准间隔
5.3.3 示例:基于等式的约束
5.3.4 示例:复杂等式
5.3.5 示例:乘数和常数
5.4 布局数学中的一个注意点
5.5 约束等式字符串
5.6 添加名称
5.6.1 使用名称标签
5.6.2 命名视图
5.7 描述视图
5.8 示例:意外的填充
5.9 示例:图像吸附
5.10 示例:视图居中
5.11 向下遍历报告
5.12 示例:歧义
5.13 示例:控制台输出的扩展
5.14 可视化约束
5.15 启动参数
5.16 国际化
5.16.1 加倍的字符串(iOS/OS X)
5.16.2 翻转界面(OS X)
5.16.3 翻转界面(iOS)
5.17 概要分析Cocoa布局
5.18 调试中的Auto Layout规则
5.19 练习
5.20 小结
第6章 使用Auto Layout创建
6.1 Auto Layout的基本原则
6.2 布局库
6.3 界面设计
6.4 模块化创建
6.5 更新约束
6.5.1 调用更新并以动画形式显示变化
6.5.2 以动画形式显示OS X上的约束变化
6.5.3 渐褪变化
6.6 边缘条件设计
6.7 创建一个视图抽屉
6.7.1 创建抽屉布局
6.7.2 管理被拖曳视图的布局
6.7.3 被拖曳的视图
6.8 窗口边界
6.9 练习
6.10 小结
第7章 布局解决方案
7.1 表单元格
7.2 保存图像纵横比
7.3 等宽尺寸
7.4 滚动视图
7.4.1 滚动视图和纯Auto Layout
7.4.2 混合解决方案
7.4.3 创建一个分页式图片滚动视图
7.5 居中视图组
7.6 自定义乘数和随机位置
7.7 创建栅格
7.8 为键盘留出空间
7.9 在运行时插入视图
7.10 运动效果、动态文本和容器
7.11 练习
7.12 小结
附录A 练习参考答案