內容提要
這是一本詳細講解如何使用Interface Builder的書籍,主要講解如何利用Interface Builder快速、高效地開發UI。《iOS UI開發捷徑——利用Interface Builder高效、優雅地開發UI》從Interface Builder選單、UIKit控制項這些基礎知識到如何使用Interface Builder鮮為人知的高級功能、如何利用Interface Builder進行代碼的最佳化等都進行了詳細講解,內容覆蓋了利用Interface Builder開發UI所涉及的各個知識點。除此之外,《iOS UI開發捷徑——利用Interface Builder高效、優雅地開發UI》還著重介紹了經常與Interface Builder配合使用的Auto Layout,以及很多與UI學習甚至與iOS開發學習相關的知識。
《iOS UI開發捷徑——利用Interface Builder高效、優雅地開發UI》理論與實踐相結合,理論部分全面而且深入,讓讀者知其所以然,實踐部分不僅講到了在開發中經常遇到的情況,而且也關注了一些非常重要的細節。《iOS UI開發捷徑——利用Interface Builder高效、優雅地開發UI》適合想快速、高效地開發UI,想學習Interface Builder的各個層次的開發人員閱讀,對於iOS的UI學習來說,《iOS UI開發捷徑——利用Interface Builder高效、優雅地開發UI》也具有很強的指導意義。
目錄
第1章 Interface Builder概要
1.1 Interface Builder簡介
1.1.1 Interface Builder是什麼
1.1.2 xib是什麼
1.1.3 拓展學習:Bundle概念的理解
1.1.4 理解Bundle對於IB的指導意義
1.1.5 storyboard是什麼
1.1.6 nib是什麼
1.1.7 storyboardc是什麼
1.2 Interface Builder的優點
1.2.1 開發和維護效率高
1.2.2 減少大量的UI代碼和“膠水代碼”
1.2.3 適配變得十分簡單
1.2.4 IB也可以做一些非UI的事情
1.2.5 利用IB學習控制項可以達到事半功倍的效果
1.3 Interface Builder的缺點
1.3.1 IB的執行效率沒有純代碼高
1.3.2 使用IB開發的過程中容易出現一些小問題
1.3.3 有一定的學習成本
1.3.4 檔案易衝突
1.3.5 沒有代碼表達清晰
1.3.6 不利於代碼的封裝和工程架構的組織
1.4 Interface Builder學習的特點
1.4.1 簡單、容易入門
1.4.2 容易犯錯誤
1.4.3 有很多“坑”,需要積累屬於自己的經驗
1.5 Interface Builder的發展
1.6 拓展學習:CocoaPods
1.6.1 CocoaPods介紹
1.6.2 Podfile檔案與CocoaPods的三種依賴方式
1.6.3 podspec檔案
第2章 使用Interface Builder
2.1 解決衝突
2.1.1 解決普通IB檔案衝突
2.1.2 解決Xcode 8引起的IB檔案衝突
2.2 創建xib檔案
2.3 “關聯”xib檔案與源檔案
2.3.1 “關聯”xib檔案與UIView子類的源檔案
2.3.2 @IBOutlet與@IBAction
2.3.3 拓展學習:設計模式之MVC
2.3.4 理解File's Owner
2.3.5 “關聯”xib檔案與UIViewController子類的源檔案
2.3.6 總結xib“關聯”源檔案
2.4 使用xib
2.4.1 使用與UIView子類源檔案關聯的xib
2.4.2 使用與UIViewController子類源檔案關聯的xib
2.4.3 xib嵌套使用的問題
2.4.4 深入學習:載入非main bundle中的資源
2.5 拓展學習:創建Bundle
2.5.1 使用簡單的方法創建普通的Bundle
2.5.2 創建基於macOS Bundle的Target來獲得Bundle
2.6 創建storyboard
2.7 使用storyboard
2.8 對比xib和storyboard的使用情況
2.9 拓展學習:App啟動過程分析與UIApplication自定義舉例
第3章 全面學習xib
3.1 操作頁面
3.2 介紹Utilities中的檢查器
3.2.1 Show the File inspector(檔案檢查器)
3.2.2 Show Quick Help inspector(快速幫助檢查器)
3.2.3 Show the Identity inspector(ID檢查器)
3.2.4 Show the Attributes inspector(屬性檢查器)
3.2.5 Show the Size inspector(尺寸檢查器)
3.2.6 Show the Connections inspector(連線檢查器)
3.2.7 “連線”方式總結
3.3 Show the Object library選單
3.4 在xib中使用UITableView
3.4.1 將基於sb的工程變成基於xib的工程
3.4.2 利用xib簡單展示UITableView
3.4.3 利用xib自定義UITableViewCell
3.4.4 利用xib自定義UITableViewCell的使用
3.5 Asset Catalog
3.5.1 使用Asset Catalog
3.5.2 Asset Catalog的優缺點
第4章 在Interface Builder中使用Auto Layout
4.1 IB與Auto Layout
4.1.1 學習Auto Layout的特點
4.1.2 在IB中使用Auto Layout的優缺點
4.2 深刻理解Auto Layout
4.2.1 如何理解“Auto Layout有別於frame系統”
4.2.2 如何理解“添加約束”
4.2.3 如何理解“間接表示”
4.3 約束
4.3.1 Auto Layout的數學公式
4.3.2 約束屬性
4.3.3 約束關係
4.3.4 multiplier與constant
4.3.5 約束的創建與添加
4.3.6 約束的優先權
4.4 Auto Layout相關選單介紹
4.4.1 Update frames介紹
4.4.2 Embed In Stack介紹
4.4.3 Align介紹
4.4.4 Add New Constraints介紹
4.4.5 Resolve Auto Layout Issues介紹
4.5 Show the Size inspector再介紹
4.5.1 Constraints選單
4.5.2 Intrinsic Size——固有尺寸
4.5.3 Content Compression Resistance——壓縮阻力
4.5.4 Content Hugging——內容吸附
4.5.5 使用NSLayoutConstraint與@IBOutlet“連線”
4.6 設定約束的方法介紹
4.6.1 在IB中設定約束
4.6.2 用蘋果原生的API設定約束
4.6.3 用VFL(Visual Format Language)設定約束
4.6.4 通過第三方庫設定約束
4.7 在Interface Builder中使用Auto Layout進行布局的實踐
4.7.1 用Auto Layout布局撥打電話頁面
4.7.2 stackView的使用
4.7.3 拓展學習:FDStackView
4.7.4 拓展學習:“黑魔法”——實現在低版本中使用高版本中才存在的類
4.7.5 Auto Layout的異類——UIScrollView
第5章 storyboard全面學習
5.1 Inspector其他選單和標籤的使用
5.1.1 使用View Controller
5.1.2 使用Page View Controller
5.1.3 使用Table View Cell
5.2 使用Extra View
5.3 使用storyboard中的segue
5.3.1 使用Relationship Segue
5.3.2 常見的segue選項
5.3.3 如何利用segue傳參
5.3.4 更靈活的segue
5.3.5 自定義的segue
5.3.6 拓展學習:iOS中記憶體管理簡介
5.3.7 深入學習:Embed Segue
5.3.8 Embed Segue與UIPageViewController的配合使用
5.3.9 深入學習:Unwind Segue
5.4 在sb中使用UITableView
5.4.1 在sb中使用自定義tableViewCell
5.4.2 在sb中給UITableView添加tableHeaderView和tableFooterView
5.4.3 segue在UITableView中的使用
5.4.4 在sb中使用靜態cell
5.5 在sb中使用UICollectionView
5.6 Use as Launch Screen
5.6.1 Launch Screen的使用
5.6.2 使用Launch Screen的好處
第6章 Interface Builder進階
6.1 Use Trait Variations
6.2 User Define Runtime Attribute
6.3 IB檔案的載入過程
6.4 本地化
6.4.1 本地化的介紹
6.4.2 文本的本地化
6.4.3 Info.plist的本地化
6.4.4 圖片資源的本地化
6.4.5 App內設定語言的本地化
6.5 Storyboard Reference的使用
6.6 使用RBStoryboardLink
6.7 用Object重構“神VC”
6.7.1 使用Object
6.7.2 用Object重構“神VC”的思路
6.7.3 如何用好Object
6.8 用External Object重構“神VC”
6.8.1 xib中External Object的使用
6.8.2 用External Object重構“神VC”的思路
6.8.3 Object和External Object總結
6.9 IB中的關鍵字總結
6.9.1 @IBAction
6.9.2 @IBOutlet
6.9.3 @IBDesignable
6.9.4 @IBInspectable
6.9.5 User Defined Runtime Attributes、@IBDesignable、@IBInspectable總結
第7章 在Interface Builder開發中的技巧和bug
7.1 調整View的尺寸,使它與顯示內容的尺寸相適應
7.2 查看各個View之間的距離
7.3 在IB中添加參考線
7.4 快速調整底層被擋住View的位置
7.5 快速查看View的UI層次關係
7.6 “連線”小技巧
7.7 使用“吸管”快速設定顏色
7.8 IB中的複製與貼上
7.9 利用Media Library快速設定圖片
7.10 IB開發中遇到的一些小bug