內容簡介
本書是
iOS套用開發基礎教程,內容翔實,語言生動。作者結合大量實例,使用
Swift語言循序漸進地講解了適用於
iPhone/iPad開發的基本流程。新版介紹強大的iOS 10作業系統,涵蓋
Xcode 8的新功能,書中所有案例全部重新編寫。
圖書目錄
第 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.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.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