第1章第一個簡單的iOS應用 1
1.1 創建Xcode項目 2
1.2 模型-視圖-控製器 5
1.3 設計 Quiz 6
1.4 Interface Builder 7
1.5 創建界麵 8
創建視圖對象 9
設置視圖對象 11
在模擬器上運行 12
Auto Layout 簡介 13
創建關聯 16
1.6 創建模型對象 21
實現動作方法 22
加載第一個問題 22
1.7 編譯完成的應用 23
1.8 應用圖標 24
1.9 啓動畫麵 26
第2章 Swift 語言 27
2.1 Swift 的數據類型 27
2.2 使用標準類型 28
推斷類型 30
指定類型 30
字麵量和角標 32
構造器 33
屬性 34
實例方法 34
2.3 可選 35
字典角標 37
2.4 循環和字符串補全 37
2.5 枚舉和 Switch 38
枚舉和初始值 39
2.6 查閱 Apple 的 Swift 文檔 40
第3章視圖與視圖層次結構 41
3.1 視圖基礎 41
3.2 視圖層次結構 42
3.3 創建新項目 43
3.4 視圖及 Frame 44
自定義標簽 51
3.5 自動布局係統 53
對齊矩形與布局屬性 54
約束 55
通過 Interface Builder 添加約束 57
內部內容大小 58
視圖位置錯誤 60
添加更多約束 61
3.6 初級練習:更多自動布局練習 62
第4章文本輸入與委托 63
4.1 文本編輯 63
鍵盤屬性 66
響應UITextField文字改變事件 67
隱藏鍵盤 70
4.2 實現溫度轉換 71
數字格式化 73
4.3 委托 74
實現協議 75
使用委托 75
更多協議 77
4.3 初級練習:禁止輸入字母 77
第5章視圖控製器 79
5.1 視圖控製器的視圖 80
5.2 設置初始視圖控製器 80
5.3 UITabBarController 83
UITabBarItem 85
5.4 加載以及展示視圖 87
訪問子視圖 89
5.5 與視圖控製器及其視圖交互 89
5.6 中級練習:夜間模式 90
5.7 深入學習:高清顯示 90
第6章用代碼實現視圖 93
6.1 使用代碼創建視圖 94
6.2 代碼實現約束 95
錨點 96
激活約束 97
LayoutGuides 98
邊距 99
約束的細節 100
6.3 代碼實現事件 101
6.4 初級練習:再添加一個 Tab 102
6.5 中級練習:顯示用戶位置 103
6.6 高級練習:顯示地圖大頭針 103
6.7 深入學習:NSAutoresizingMaskLayoutConstraint 103
第7章本地化 105
7.1 國際化 106
格式化 106
基礎國際化 109
準備本地化 110
7.2 本地化 114
NSLocalizedString以及字符串錶 117
7.3 初級練習:增加另外一種語言的本地化 120
7.4 深入學習:Bundle 在國際化中扮演的角色 120
7.5 深入學習:導入和導齣 XLIFF 文件 121
第8章控製動畫 123
8.1 基礎動畫 124
閉包 124
8.2 另一個標簽 126
8.3 動畫完成 129
8.4 對約束作動畫 129
8.5 時間方法 133
8.6 初級練習:Spring 動畫 135
8.7 中級練習:Layout Guides 135
第9章調試 137
9.1 Buggy 項目 137
9.2 調試基礎 139
解讀控製颱信息 139
修復第一個問題 141
原始調試 142
9.3 Xcode的調試器:LLDB 144
設置斷點 145
單步調試代碼 146
LLDB 控製颱 153
第10章UITableView與UITableViewController 155
10.1 編寫Homepwner應用 156
10.2 UITableViewController 157
創建UITableViewController子類 158
10.3 創建 Item 類 159
自定義構造方法 160
10.4 UITableView數據源 161
讓控製器訪問ItemStore 163
實現數據源方法 165
10.5 UITableViewCells 166
創建並獲取UITableViewCell 167
重用UITableViewCell 169
10.6 內容縮進 171
10.7 初級練習:多個分組 172
10.8 中級練習:固定的行 173
10.9 高級練習:自定義UITableView 173
第11章編輯UITableView 175
11.1 編輯模式 175
11.2 添加行 179
11.3 刪除行 181
11.4 移動行 182
11.5 顯示彈窗 183
11.6 設計模式 186
11.7 初級練習:修改刪除按鈕的標題 187
11.8 中級練習:禁止調整順序 187
11.9 高級練習:真正地禁止調整順序 187
第12章創建UITableViewCell子類 189
12.1 創建ItemCell 190
12.2 添加並關聯ItemCell的屬性 191
12.3 使用ItemCell 192
12.4 動態計算 Cell 高度 194
12.5 動態類型 194
響應用戶的修改 196
12.6 初級練習:UITableViewCell的顔色 197
第13章UIStackView 199
13.1 使用UIStackView 200
隱藏的約束 200
內容變多優先級 201
內容變少優先級 202
UIStackView的分配 202
嵌套的UIStackView 203
UIStackView間距 204
13.2 Segues 205
13.3 綁定內容 206
13.4 傳遞數據 211
13.5 初級練習:更多的UIStackView 212
第14章UINavigationController 213
14.1 UINavigationController 214
14.2 使用UINavigationController導航 218
14.3 視圖的齣現和消失 218
14.4 隱藏鍵盤 219
事件處理基礎 220
點擊迴車鍵來收起鍵盤 221
點擊任意位置隱藏 221
14.5 UINavigationBar 223
在UINavigationBar上添加按鈕 225
14.6 初級練習:顯示數字鍵盤 228
14.7 中級練習:自定義UITextField 228
14.8 高級練習:添加更多UIViewController 228
第15章相機 229
15.1 通過UIImageView對象顯示圖片 230
添加相機按鈕 232
15.2 通過UIImagePickerController拍攝照片 234
設置UIImagePickerController對象的源 235
設置UIImagePickerController對象的委托 236
以模態的形式顯示UIImagePickerController對象 237
權限 237
保存圖片 240
15.3 創建ImageStore 240
15.4 讓UIViewController可以訪問ImageStore 242
15.5 創建並使用鍵 243
15.6 使用ImageStore 245
15.7 初級練習:編輯圖片 246
15.8 中級練習:刪除圖片 246
15.9 高級練習:Camera Overlay 246
15.10 深入學習:導航實現文件 246
//MARK: 247
第16章保存、讀取與應用狀態 249
16.1 固化 250
16.2 應用沙盒 252
創建文件 URL 253
16.3 NSKeyedArchiver與NSKeyedUnarchiver 254
加載文件 257
16.4 應用狀態與狀態切換 257
16.5 通過NSData將數據寫入文件 260
16.6 錯誤處理 263
16.7 初級練習:PNG 265
16.8 深入學習:應用狀態切換 265
16.9 深入學習:文件係統讀/寫 266
16.10 深入學習:應用程序包 268
第17章 Size Classes 271
17.1 為特定的 Size Classes 定製界麵 272
17.2 初級練習:垂直排列UITextField和UILabel 276
第18章觸摸事件和UIResponder 277
18.1 觸摸事件 277
18.2 創建TouchTracker應用 279
18.3 創建 Line 結構體 280
結構體 281
值類型和指針類型對比 281
18.4 創建DrawView 281
18.5 使用DrawView畫圖 282
18.6 處理觸摸事件並繪製綫條 283
處理多點觸摸 284
18.7 @IBInspectable 288
18.8 中級練習:顔色 290
18.9 高級練習:圓圈 290
18.10 深入學習:響應對象鏈 290
18.11 深入學習:UIControl 291
第19章UIGestureRecognizer與UIMenuController 293
19.1 UIGestureRecognizer子類 294
19.2 使用UITapGestureRecognizer檢測點擊 294
19.3 多個UIGestureRecognizer 296
19.4 UIMenuController 299
19.5 更多UIGestureRecognizer 301
UIPanGestureRecognizer與同時識彆 302
19.6 深入學習UIGestureRecognizer 306
19.7 中級練習:神奇的綫條 307
19.8 高級練習:速度和大小 307
19.9 終極練習:顔色 307
19.10 深入學習:UIMenuController與UIResponderStandardEditActions 308
第20章網絡服務 309
20.1 開始Photorama應用 310
20.2 創建 URL 312
URL 和請求格式 312
URLComponents 313
20.3 發送請求 316
URLSession 317
20.4 創建 Photo 模型 320
20.5 JSON 數據 320
JSONSerialization 321
枚舉和相關值 322
解析 JSON 數據 323
20.6 下載並顯示圖片數據 328
20.7 主綫程 331
20.8 初級練習:打印返迴信息 332
20.9 中級練習:從 Flickr 獲取最新照片 332
20.10 深入學習:HTTP 333
第21章UICollectionView 335
21.1 顯示網格 336
21.2 UICollectionView數據源 338
21.3 自定義布局 341
21.4 創建自定義的UICollectionViewCell 343
21.5 下載照片數據 347
擴展 350
照片緩存 352
21.6 查看照片 353
21.7 中級練習:改變 Item 的尺寸 356
21.8 高級練習:自定義布局 356
第22章 Core Data 357
22.1 對象圖 357
22.2 實體 358
模型實體 358
可變屬性 360
NSManagedObject和它的子類 360
22.3 NSPersistentContainer 362
22.4 更新數據 363
插入數據 363
保存修改 365
22.5 更新數據源 365
NSFetchRequest和NSPredicate 365
22.6 初級練習:照片查看次數 369
22.7 深入學習:Core Data Stack 369
NSManagedObjectModel 369
NSPersistentStoreCoordinator 369
NSManagedObjectContext 370
第23章 Core Data 關係 371
23.1 關係 372
23.2 在界麵中添加標簽 374
23.3 後颱任務 383
23.4 中級練習:收藏 387
第24章輔助功能 389
24.1 旁白 389
測試旁白 390
在Photorama中使用輔助功能 392
第25章後記 397
25.1 接下來做什麼 397
25.2 關注我們 398
索引 399
· · · · · · (
收起)