AutoLayout改變了創建iOS用戶界面的方式。它既靈活又強大,給予你對iOS用戶界面前所未有的控制,但AutoLayout的難度也是眾人皆知的。在《iOSAutoLayout開發秘籍(第2版)》中,享譽世界的iOS開發者和圖書作者EricaSadun為你揭開了迷霧,幫助你通過「示例講解」這種最簡單的方法來精通AutoLayout。
針對iOS7和Xcode5的完全更新,本書秉承了該系列的優良傳統:清晰的解釋、專業的提示、可靠的最佳實踐——以及,最重要的一點,大量可學習和復用的代碼。Sadun(撒敦)采用循序漸進的方式解釋了AutoLayout的思想、它的工作原理、適用范圍,以及比預想更有用(更簡單)的原因。Sadun為現實世界的各種iOS開發挑戰提供了實際的解決方案,使用AutoLayout創建可交互的元素、動畫等。
EricaSadun是數十本暢銷書的作者、合著者和供稿者,這些書涉及編程、數字視頻、數字攝影和Web設計,包括廣受歡迎的TheCoreiOS6Developer’’sCookbook的第4版。她最近在TUAW.com上發表博文,過去在O』Reilly的MacDevcenter、Lifehacke和ArsTechnica上發表博文。除了是數十款iOS原生應用的作者外,Sadun擁有佐治亞理工學院圖形可視化和可用性研究中心計算機科學專業的博士學位。她是一名極客、一名程序員和一名著作者。寫作之余,她和她的極客丈夫共同養育三個「尚在訓練中」的小極客。
目錄
第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 練習參考答案
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 練習參考答案
網路書店
類別
折扣
價格
-
新書87折$260