第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
· · · · · · (
收起)