Auto Layout改變了創(chuàng)建iOS用戶界面的方式。它既靈活又強(qiáng)大,給予你對(duì)iOS用戶界面前所未有的控制,但AutoLayout的難度也是眾人皆知的。在《iOS Auto Layout開(kāi)發(fā)秘籍(第2版)》中,享譽(yù)世界的iOS開(kāi)發(fā)者和圖書作者Erica Sadun為你揭開(kāi)了迷霧,幫助你通過(guò)“示例講解”這種最簡(jiǎn)單的方法來(lái)精通Auto Layout。
針對(duì)iOS 7和Xcode 5的完全更新,本書秉承了該系列的優(yōu)良傳統(tǒng):清晰的解釋、專業(yè)的提示、可靠的最佳實(shí)踐——以及,最重要的一點(diǎn),大量可學(xué)習(xí)和復(fù)用的代碼。
Sadun采用循序漸進(jìn)的方式解釋了Auto Layout的思想、它的工作原理、適用范圍,以及比預(yù)想更有用(更簡(jiǎn)單)的原因。Sadun為現(xiàn)實(shí)世界的各種iOS開(kāi)發(fā)挑戰(zhàn)提供了實(shí)際的解決方案,使用Auto Layout創(chuàng)建可交互的元素、動(dòng)畫等。
主要內(nèi)容
◆ 掌握Auto Layout的基本概念、技術(shù)和方法
◆ 定義無(wú)歧義的、可滿足的約束,這種約束能準(zhǔn)確表達(dá)你的布局意圖
◆ 克服Interface Builder中基于約束的用戶界面設(shè)計(jì)的障礙
◆ 使用視覺(jué)格式表示項(xiàng)是如何垂直和水平布局的
◆ 使用度量字典和布局選項(xiàng)使視覺(jué)格式更靈活
◆ 調(diào)試約束,解密那些令人費(fèi)解的Xcode日志信息
◆ 使用描述性技術(shù)揭示和表達(dá)設(shè)計(jì)中的自然關(guān)系
◆ 在Mac OS X 應(yīng)用中使用iOS AutoLayout技術(shù)
第1章 Auto Layout介紹
1.1 Auto Layout的由來(lái)
1.2 使用Auto Layout的好處
1.2.1 幾何關(guān)系
1.2.2 內(nèi)容驅(qū)動(dòng)的布局
1.2.3 優(yōu)先級(jí)規(guī)則
1.2.4 檢查和模塊化
1.2.5 與Autosizing兼容
1.3 約束
1.3.1 可滿足性
1.3.2 充分性
1.4 約束屬性
1.5 關(guān)于那些丟失的視圖
1.5.1 欠約束導(dǎo)致丟失視圖
1.5.2 規(guī)則不一致導(dǎo)致丟失視圖
1.5.3 追蹤丟失的視圖
1.6 有歧義的布局
1.6.1 糾正有歧義的布局
1.6.2 可視化約束
1.7 內(nèi)在內(nèi)容大小
1.8 壓縮阻力和內(nèi)容吸附
1.9 圖像裝飾元素
1.9.1 對(duì)齊矩形
1.9.2 可視化對(duì)齊矩形
1.9.3 對(duì)齊inset
1.9.4 聲明對(duì)齊矩形
1.9.5 實(shí)現(xiàn)對(duì)齊矩形
1.10 練習(xí)
1.11 小結(jié)
第2章 約束
2.1 約束類型
2.2 優(yōu)先級(jí)
2.2.1 沖突的優(yōu)先級(jí)
2.2.2 枚舉型優(yōu)先級(jí)
2.3 內(nèi)容大小約束
2.3.1 內(nèi)在內(nèi)容大小
2.3.2 內(nèi)容吸附
2.3.3 壓縮阻力
2.3.4 通過(guò)代碼設(shè)置內(nèi)容大小約束
2.3.5 在IB中設(shè)置內(nèi)容大小約束
2.4 構(gòu)建布局約束
2.5 布局約束類
2.5.1 約束數(shù)學(xué)
2.5.2 第一項(xiàng)和第二項(xiàng)
2.6 創(chuàng)建布局約束
2.6.1 構(gòu)建NSLayoutConstraint實(shí)例
2.6.2 一元約束
2.6.3 不含視圖項(xiàng)的約束是不合法的
2.7 視圖項(xiàng)
2.8 約束、層次結(jié)構(gòu)與邊界系統(tǒng)
2.9 安裝約束
2.10 比較約束
2.11 布局約束法則
2.12 練習(xí)
2.13 小結(jié)
第3章 Interface Builder布局
3.1 在IB中設(shè)計(jì)
3.2 禁用Auto Layout
3.2.1 在代碼中退出Auto Layout
3.2.2 結(jié)合Autosizing和Auto Layout
3.3 基本布局以及自動(dòng)生成的約束
3.3.1 推測(cè)的約束
3.3.2 歧義消除約束
3.3.3 尺寸約束
3.4 IB元素指南
3.4.1 約束列表
3.4.2 Xcode標(biāo)簽
3.4.3 添加X(jué)code標(biāo)識(shí)
3.5 添加約束
3.5.1 拖曳
3.5.2 釘固和對(duì)齊
3.6 預(yù)覽布局
3.7 檢查約束
3.8 視圖的Size Inspector
3.8.1 框架矩形和布局矩形
3.8.2 其他Size Inspector項(xiàng)
3.9 處理菜單
3.9.1 更新框架和約束
3.9.2 添加和重置約束
3.9.3 清理約束
3.10 約束/尺寸調(diào)整彈出菜單
3.10.1 Descendants選項(xiàng)
3.10.2 Siblings and Ancestors選項(xiàng)
3.11 視圖丟失問(wèn)題
3.12 平衡請(qǐng)求
3.13 混合布局
3.13.1 創(chuàng)建一個(gè)用于測(cè)試的nib文件
3.13.2 在代碼中加入nib文件
3.13.3 混合布局的優(yōu)點(diǎn)
3.14 移除IB生成的約束
3.15 練習(xí)
3.16 小結(jié)
第4章 可視化格式
4.1 可視化格式約束介紹
4.2 選項(xiàng)
4.2.1 對(duì)齊
4.2.2 省略選項(xiàng)
4.3 變量綁定
4.3.1 間接的問(wèn)題
4.3.2 間接的替代方案
4.4 度量
4.5 格式字符串結(jié)構(gòu)
4.6 方向
4.7 視圖名稱
4.8 連接
4.8.1 空連接
4.8.2 標(biāo)準(zhǔn)間隔
4.8.3 數(shù)字間隔
4.8.4 引用父視圖
4.8.5 與父視圖的間隔
4.8.6 靈活間隔
4.8.7 圓括號(hào)
4.8.8 負(fù)數(shù)
4.8.9 優(yōu)先級(jí)
4.8.10 多視圖
4.9 視圖尺寸
4.10 格式字符串部件
4.11 出錯(cuò)
4.12 NSLog和可視化格式
4.13 約束到父視圖
4.14 視圖拉伸
4.15 約束尺寸
4.16 創(chuàng)建列或者行
4.17 匹配尺寸
4.18 為何不能分布視圖
4.18.1 偽分布視圖(第1部分:等中心)
4.18.2 偽分布視圖(第2部分:間隔視圖)
4.19 練習(xí)
4.20 小結(jié)
第5章 調(diào)試約束
5.1 Xcode反饋
5.1.1 開(kāi)發(fā)反饋
5.1.2 編譯器反饋
5.1.3 運(yùn)行時(shí)
5.2 閱讀控制臺(tái)日志
5.2.1 示例:自動(dòng)尺寸調(diào)整問(wèn)題
5.2.2 解決方案:關(guān)閉自動(dòng)尺寸調(diào)整轉(zhuǎn)換
5.2.3 示例:Auto Layout沖突
5.2.4 解決方案:調(diào)整優(yōu)先級(jí)
5.2.5 原子法
5.2.6 平衡法
5.2.7 追蹤歧義
5.3 檢查約束日志
5.3.1 示例:對(duì)齊約束
5.3.2 示例:標(biāo)準(zhǔn)間隔
5.3.3 示例:基于等式的約束
5.3.4 示例:復(fù)雜等式
5.3.5 示例:乘數(shù)和常數(shù)
5.4 布局?jǐn)?shù)學(xué)中的一個(gè)注意點(diǎn)
5.5 約束等式字符串
5.6 添加名稱
5.6.1 使用名稱標(biāo)簽
5.6.2 命名視圖
5.7 描述視圖
5.8 示例:意外的填充
5.9 示例:圖像吸附
5.10 示例:視圖居中
5.11 向下遍歷報(bào)告
5.12 示例:歧義
5.13 示例:控制臺(tái)輸出的擴(kuò)展
5.14 可視化約束
5.15 啟動(dòng)參數(shù)
5.16 國(guó)際化
5.16.1 加倍的字符串(iOS/OS X)
5.16.2 翻轉(zhuǎn)界面(OS X)
5.16.3 翻轉(zhuǎn)界面(iOS)
5.17 概要分析Cocoa布局
5.18 調(diào)試中的Auto Layout規(guī)則
5.19 練習(xí)
5.20 小結(jié)
第6章 使用Auto Layout創(chuàng)建
6.1 Auto Layout的基本原則
6.2 布局庫(kù)
6.3 界面設(shè)計(jì)
6.4 模塊化創(chuàng)建
6.5 更新約束
6.5.1 調(diào)用更新并以動(dòng)畫形式顯示變化
6.5.2 以動(dòng)畫形式顯示OS X上的約束變化
6.5.3 漸褪變化
6.6 邊緣條件設(shè)計(jì)
6.7 創(chuàng)建一個(gè)視圖抽屜
6.7.1 創(chuàng)建抽屜布局
6.7.2 管理被拖曳視圖的布局
6.7.3 被拖曳的視圖
6.8 窗口邊界
6.9 練習(xí)
6.10 小結(jié)
第7章 布局解決方案
7.1 表單元格
7.2 保存圖像縱橫比
7.3 等寬尺寸
7.4 滾動(dòng)視圖
7.4.1 滾動(dòng)視圖和純Auto Layout
7.4.2 混合解決方案
7.4.3 創(chuàng)建一個(gè)分頁(yè)式圖片滾動(dòng)視圖
7.5 居中視圖組
7.6 自定義乘數(shù)和隨機(jī)位置
7.7 創(chuàng)建柵格
7.8 為鍵盤留出空間
7.9 在運(yùn)行時(shí)插入視圖
7.10 運(yùn)動(dòng)效果、動(dòng)態(tài)文本和容器
7.11 練習(xí)
7.12 小結(jié)
附錄A 練習(xí)參考答案