第1章 歡迎來到iOS和Swift世界 1
1.1 關於本書 1
1.2 必備條件 2
1.2.1 選擇開發者計劃 3
1.2.2 必備知識 5
1.2.3 iOS應用程序的特點 5
1.3 本書內容 8
1.3.1 新版增加內容 9
1.3.2 Swift和Xcode版本 9
1.3.3 準備好瞭嗎 9
第2章 創建第一個App 10
2.1 創建“Hello, World!”項目 10
2.1.1 Xcode項目窗口 13
2.1.2 深入瞭解項目 20
2.2 Interface Builder簡介 21
2.2.1 文件格式 22
2.2.2 storyboard 22
2.2.3 實用工具 23
2.2.4 在視圖中添加標簽 24
2.2.5 屬性修改 27
2.3 畫龍點睛——美化iPhone應用程序 28
2.4 啓動界麵 32
2.5 在設備上運行應用 33
2.6 小結 36
第3章 基本的用戶交互 37
3.1 MVC模式 37
3.2 創建ButtonFun應用 38
3.3 視圖控製器 39
3.3.1 輸齣接口和操作方法 40
3.3.2 精簡視圖控製器代碼 41
3.3.3 設計用戶界麵 42
3.3.4 測試ButtonFun應用 49
3.3.5 布局預覽 57
3.3.6 改變文本樣式 59
3.4 應用程序委托 60
3.5 小結 62
第4章 更豐富的用戶界麵 63
4.1 動態控件、靜態控件和被動控件 66
4.2 創建Control Fun應用程序 66
4.3 實現圖像視圖和文本框 67
4.3.1 添加圖像視圖 67
4.3.2 調整圖像視圖的大小 69
4.3.3 設置視圖屬性 71
4.3.4 添加文本框 72
4.3.5 添加約束 78
4.3.6 創建並關聯輸齣接口 79
4.4 關閉鍵盤 80
4.4.1 按下Done按鈕關閉鍵盤 81
4.4.2 觸摸背景關閉鍵盤 82
4.4.3 添加滑動條和標簽 83
4.4.4 創建並關聯操作方法和輸齣接口 85
4.4.5 實現操作方法 85
4.5 實現開關、按鈕和分段控件 86
4.5.1 添加兩個帶標簽的開關 87
4.5.2 為開關創建並關聯輸齣接口和操作方法 87
4.5.3 實現開關的操作方法 88
4.5.4 控件狀態 90
4.5.5 為按鈕創建並關聯輸齣接口和操作方法 91
4.6 實現分段控件的操作方法 91
4.7 實現操作錶單和警告視圖 92
4.7.1 顯示操作錶單 92
4.7.2 顯示警告視圖 95
4.8 小結 96
第5章 自動鏇轉 97
5.1 自動鏇轉機製 98
5.1.1 點、像素和Retina顯示屏 98
5.1.2 控製鏇轉 98
5.2 創建Orientations項目 99
5.2.1 應用級支持的方嚮 99
5.2.2 獨立控製器的鏇轉支持 101
5.3 創建布局項目 102
5.3.1 覆蓋默認的約束 105
5.3.2 與屏幕等寬的標簽 107
5.4 創建自適應布局 109
5.4.1 創建Restructure 應用程序 109
5.4.2 設置iPhone的橫嚮(wC hC)配置布局 116
5.4.3 設置iPad(以及iPhone Plus橫嚮)的wR hR配置 124
5.5 小結 131
第6章 創建多視圖應用 132
6.1 多視圖應用的常見類型 132
6.2 多視圖應用的體係結構 135
6.2.1 根控製器 137
6.2.2 內容視圖剖析 137
6.3 構建View Switcher項目 137
6.3.1 重命名視圖控製器 137
6.3.2 添加內容視圖控製器 139
6.3.3 修改SwitchingViewController.swift 140
6.3.4 創建擁有工具欄的視圖 140
6.3.5 連接工具欄按鈕和視圖控製器 142
6.3.6 編寫根視圖控製器 143
6.3.7 實現內容視圖 147
6.3.8 過渡動畫效果 150
6.4 小結 152
第7章 分頁欄與選取器 153
7.1 Pickers應用程序 153
7.2 委托和數據源 156
7.3 創建Pickers應用程序 157
7.3.1 創建視圖控製器 157
7.3.2 創建分頁欄控製器 158
7.3.3 首次模擬器測試 161
7.3.4 實現日期選取器 162
7.4 實現單滾輪選取器 164
7.4.1 構建視圖 164
7.4.2 將控製器實現為數據源和委托 168
7.5 實現多滾輪選取器 170
7.5.1 構建視圖 170
7.5.2 實現控製器 170
7.5.3 滾輪內容根據環境變化 172
7.6 使用自定義選取器創建一個簡單遊戲 178
7.6.1 編寫控製器頭文件 178
7.6.2 構建視圖 178
7.6.3 實現控製器 179
7.6.4 最後的細節 182
7.7 小結 185
第8章 錶視圖簡介 186
8.1 錶視圖基礎 186
8.1.1 錶視圖和錶視圖單元 186
8.1.2 分組錶和連續錶 187
8.2 實現一個簡單錶 188
8.2.1 設計視圖 188
8.2.2 實現控製器 190
8.2.3 添加一個圖像 193
8.2.4 錶視圖單元樣式 194
8.2.5 設置縮進級彆 197
8.2.6 處理行的選擇 197
8.2.7 更改字體大小和行高 199
8.3 定製錶視圖單元 200
8.4 實現自定義錶視圖應用程序 201
8.4.1 創建UITableViewCell子類 201
8.4.2 從XIB文件加載UITableViewCell 205
8.5 分組分區和索引分區 210
8.5.1 構建視圖 210
8.5.2 導入數據 211
8.5.3 實現控製器 212
8.5.4 添加索引 214
8.5.5 添加搜索欄 215
8.5.6 視圖調試器 220
8.6 小結 222
第9章 錶視圖中的導航控製器 223
9.1 導航控製器基礎 223
9.1.1 棧的概念 223
9.1.2 控製器棧 224
9.2 簡單的字體瀏覽器:Fonts 225
9.2.1 Fonts應用的子控製器 225
9.2.2 Fonts應用的基礎框架 227
9.2.3 創建根視圖控製器 230
9.2.4 初始化storyboard 232
9.2.5 第一個子控製器:字體列錶視圖 233
9.2.6 設計字體列錶的storyboard 235
9.3 創建字體尺寸視圖控製器 237
9.3.1 設計字體尺寸視圖控製器的storyboard 238
9.3.2 對字體列錶視圖控製器的轉場進行設置 238
9.3.3 創建字體信息視圖控製器 239
9.3.4 設計字體信息視圖控製器的storyboard 240
9.3.5 調整字體列錶視圖控製器的轉場 243
9.3.6 我的收藏字體 244
9.3.7 補充功能 244
9.3.8 實現輕掃刪除 244
9.3.9 實現拖動排序 246
9.4 小結 247
第10章 集閤視圖 248
10.1 創建DialogViewer項目 248
10.1.1 配置自定義單元 249
10.1.2 配置視圖控製器 252
10.1.3 提供內容單元 252
10.1.4 實現流動布局 254
10.1.5 實現標題視圖 255
10.2 小結 257
第11章 iPad應用中的分割視圖和浮動窗口 258
11.1 創建基於UISplitViewController的分割視圖應用程序 260
11.1.1 在storyboard中定義結構 262
11.1.2 使用代碼定義功能 263
11.1.3 Master-Detail模闆應用程序的工作原理 266
11.1.4 添加總統信息 268
11.1.5 創建浮動窗口 272
11.2 小結 277
第12章 應用設置和用戶默認設置 278
12.1 設置捆綁包入門 278
12.2 Bridge Control應用程序 279
12.2.1 創建項目 282
12.2.2 使用設置捆綁包 283
12.2.3 讀取應用中的設置 295
12.2.4 在應用中修改默認設置 298
12.2.5 注冊默認值 300
12.2.6 保證設置有效 300
12.2.7 切換到Settings應用程序 302
12.3 小結 303
第13章 數據持久化基礎知識 304
13.1 應用程序的沙盒 304
13.1.1 獲取Documents和Library目錄 307
13.1.2 獲取臨時目錄 308
13.2 文件保存方案 308
13.2.1 單文件持久化 308
13.2.2 多文件持久化 309
13.3 屬性列錶 309
13.3.1 屬性列錶序列化 309
13.3.2 創建Persistence應用程序的第一個版本 310
13.4 對模型對象進行歸檔 314
13.4.1 遵循NSCoding協議 314
13.4.2 實現NSCopying協議 315
13.4.3 對數據對象進行歸檔和取消歸檔 316
13.4.4 歸檔應用 316
13.4.5 使用iOS嵌入的SQLite3 318
13.4.6 創建或打開數據庫 319
13.4.7 使用綁定變量 320
13.5 創建SQLite3應用程序 321
13.6 使用Core Data 325
13.6.1 實體和托管對象 326
13.6.2 Core Data應用 329
13.6.3 修改AppDelegate.swift文件 332
13.7 小結 338
第14章 文檔和iCloud 339
14.1 使用UIDocument管理文檔存儲 340
14.1.1 構建TinyPix 340
14.1.2 創建TinyPixDocument類 340
14.1.3 主控製器代碼 342
14.1.4 設置storyboard 348
14.1.5 創建TinyPix視圖的類 350
14.1.6 設計storyboard的詳情視圖 353
14.2 添加iCloud支持 356
14.2.1 創建配置描述文件 356
14.2.2 如何查詢 359
14.2.3 保存位置 360
14.2.4 將偏好設置保存到iCloud 361
14.3 小結 363
第15章 用Grand Central Dispatch進行多綫程編程 364
15.1 創建SlowWorker應用程序 365
15.1.1 綫程基礎知識 367
15.1.2 工作單元 368
15.1.3 GCD:底層隊列 368
15.1.4 改進SlowWorker 369
15.2 後颱處理 372
15.3 應用生命周期 373
15.4 狀態更改通知 373
15.4.1 創建State Lab項目 374
15.4.2 探索執行狀態 375
15.4.3 利用執行狀態更改 376
15.4.4 處理不活躍狀態 377
15.4.5 處理後颱狀態 380
15.4.6 進入後颱時保存狀態 382
15.5 小結 385
第16章 圖形與繪製 386
16.1 Quartz 2D基礎概念 386
16.2 Quartz 2D繪圖方法 387
16.2.1 Quartz 2D圖形環境 387
16.2.2 坐標係統 388
16.2.3 指定顔色 389
16.2.4 在環境中繪製圖像 390
16.2.5 繪製形狀:多邊形、直綫和麯綫 390
16.2.6 Quartz 2D樣例:圖案、漸變色、虛綫圖 391
16.3 QuartzFun應用程序 392
16.3.1 構建QuartzFun應用程序 392
16.3.2 添加Quartz 2D繪製代碼 398
16.3.3 優化QuartzFun應用程序 402
16.4 小結 404
第17章 SpriteKit製作簡單遊戲 405
17.1 創建TextShooter應用 405
17.1.1 自定義初始場景 408
17.1.2 玩傢移動 411
17.1.3 創建敵人 415
17.1.4 在場景中加入敵人 416
17.1.5 開始射擊 417
17.1.6 物理攻擊敵人 420
17.1.7 完成關卡 421
17.1.8 自定義碰撞 423
17.1.9 粒子係統 426
17.1.10 嚮場景中加入粒子 428
17.1.11 遊戲結束 430
17.1.12 創建開始場景 432
17.1.13 添加音效 434
17.1.14 添加力場:為遊戲提高一些難度 434
17.2 小結 437
第18章 輕點、觸摸和手勢 438
18.1 多點觸控術語 438
18.2 響應者鏈 439
18.2.1 響應事件 439
18.2.2 轉發事件:保持響應者鏈的活動狀態 440
18.3 多點觸控體係結構 440
18.4 4 個手勢通知方法 440
18.5 TouchExplorer應用 441
18.5.1 創建Swipes應用程序 445
18.5.2 使用觸摸事件檢測輕掃 445
18.5.3 自動手勢識彆 447
18.5.4 實現多指輕掃 448
18.5.5 檢測多次輕點 450
18.5.6 檢測捏閤和鏇轉 453
18.6 小結 456
第19章 確定位置 457
19.1 位置管理器 457
19.1.1 設置期望精度 457
19.1.2 設置距離篩選器 458
19.1.3 獲取使用定位服務的權限 458
19.1.4 啓動位置管理器 458
19.1.5 閤理使用位置管理器 458
19.2 位置管理器委托 459
19.2.1 獲取位置更新 459
19.2.2 使用CLLocation獲取緯度和經度 459
19.2.3 錯誤通知 461
19.3 創建WhereAmI應用程序 461
19.3.1 更新位置管理器 465
19.3.2 將移動路綫展現在地圖上 467
19.3.3 更改定位服務權限 470
19.4 小結 471
第20章 設備方嚮與動作 472
20.1 加速計物理特性 472
20.2 陀螺儀鏇轉特性 473
20.3 Core Motion和動作管理器 473
20.3.1 創建MotionMonitor應用程序 473
20.3.2 主動動作訪問 476
20.3.3 陀螺儀和方位結果 478
20.3.4 加速計結果 479
20.4 檢測搖動 480
20.4.1 內嵌的搖動檢測 480
20.4.2 搖動與破碎 480
20.5 將加速計用作方嚮控製器 482
20.5.1 Ball應用程序 482
20.5.2 實現BallView類 484
20.5.3 計算彈珠運動 486
20.6 小結 488
第21章 攝像頭和照片圖庫 489
21.1 圖像選取器和UIImagePickerController 489
21.1.1 圖像選取器控製器 489
21.1.2 實現圖像選取器控製器委托 491
21.2 設計Camera界麵 492
21.2.1 隱私選項 494
21.2.2 實現攝像頭視圖控製器 495
21.3 小結 498
第22章 本地化翻譯應用 499
22.1 本地化體係結構 499
22.2 字符串文件 500
22.2.1 字符串文件的格式 500
22.2.2 本地化的字符串函數 501
22.3 創建LocalizeMe應用 502
22.3.1 本地化項目 505
22.3.2 本地化storyboard 508
22.3.3 創建並本地化字符串文件 512
22.3.4 應用顯示名稱的本地化 516
22.3.5 添加其他本地化 517
22.4 小結 517
22.5 全書總結 518
附錄A Swift簡介 519
· · · · · · (
收起)