內容簡介
《iOS 14開發指南》旨在介紹開發iOS 14應用程式的知識。本書主要講解了如何通過Xcode開發應用程式,如何實現各種控制項,如何設計用戶界面,如何處理圖像、圖層、動畫等,如何實現多媒體開發,如何定位,如何讀寫應用程式的數據,如何處理手勢,如何開發通用的應用程式、tvOS應用程式、虛擬現實應用程式,如何在應用程式中添加Siri功能,如何使用Apple Pay、SwiftUI、WatchKit等。
《iOS 14開發指南》適合iOS初學者和iOS開發人員閱讀,也可以作為培訓機構和高校相關專業的教材。
作者簡介
管蕾,51CTO的Android和iOS專家,帶領團隊開發了一款雲伺服器,開發過多款iOS應用程式,代表作品有《iOS 8開發指南》《iOS 9開發指南》《iOS 10開發指南》《iOS 11開發指南》。
圖書目錄
目 錄
第 1章 iOS開發入門 1
1.1 iOS簡介 1
1.2 開始iOS 14開發之旅 2
1.3 工欲善其事,必先利其器——搭建開發環境 3
1.3.1 Xcode 4
1.3.2 Xcode 12的新特性 4
1.3.3 下載並安裝Xcode 12 4
1.3.4 創建iOS 14項目並啟動模擬器 6
1.3.5 打開一個現有的iOS 14項目 8
1.3.6 使用Xcode 12的新特性:基於Swift創建第 一個通用應用程式 8
第 2章 Xcode開發環境 11
2.1 基本面板 11
2.1.1 調試工具列 12
2.1.2 資源管理器 12
2.1.3 屬性面板 15
2.2 Xcode 12的基本操作 15
2.2.1 改變公司名稱 16
2.2.2 通過搜尋框縮小檔案範圍 16
2.2.3 格式化代碼 17
2.2.4 代碼縮進和自動補全 17
2.2.5 檔案內查找和替換 18
2.2.6 快速定位到代碼行 19
2.2.7 快速打開檔案 19
2.2.8 自定義導航欄 20
2.2.9 調試代碼 20
2.3 使用Xcode 12的幫助系統 21
第3章 通過IB開發界面 24
3.1 IB的基礎知識 24
3.2 IB中的故事板 25
3.2.1 推出的背景 26
3.2.2 故事板的文檔大綱 26
3.2.3 文檔大綱區域的對象 27
3.3 創建界面 27
3.3.1 Object庫 28
3.3.2 將對象添加到視圖中 28
3.3.3 使用IB布局工具 29
3.4 定製界面外觀 31
3.4.1 使用Attributes Inspector 31
3.4.2 設定Accessibility選項區域 32
3.5 iOS 14中控制項的屬性 33
3.6 完全通過代碼實現UI設計 33
第4章 使用Xcode編寫MVC應用程式 36
4.1 MVC模式 36
4.2 Xcode中的MVC 37
4.2.1 Xcode中的視圖 37
4.2.2 Xcode中的視圖控制器 37
4.3 數據模型 37
4.4 基於Objective-C使用模板Single View Application創建MVC程式 38
4.4.1 創建項目 38
4.4.2 規劃變數和連線 40
4.4.3 設計界面 42
4.4.4 創建並連線輸出口和操作 43
4.4.5 實現應用程式邏輯 45
4.4.6 生成應用程式 45
4.5 基於Swift使用模板Single View Application創建MVC應用程式 46
第5章 文本框和文本視圖 47
5.1 文本框 47
5.1.1 文本框的基礎知識 47
5.1.2 控制是否顯示TextField中的密碼明文信息 47
5.1.3 實現用戶登錄界面 49
5.1.4 限制輸入文本的長度 50
5.1.5 基於Swift實現UITextField控制項 51
5.2 文本視圖 52
5.2.1 文本視圖的基礎知識 52
5.2.2 自定義UITextView控制項中文字的行間距 53
5.2.3 自定義UITextView控制項的樣式 54
5.2.4 基於Swift在指定的區域中輸入文本 56
5.2.5 基於Objective-C通過文本提示單擊的按鈕 57
5.2.6 基於Swift在螢幕中顯示單擊的按鈕 57
第6章 標籤和按鈕 59
6.1 標籤 59
6.1.1 標籤的屬性 59
6.1.2 使用UILabel顯示一段文本 59
6.1.3 為文字分別添加上畫線、下畫線和中畫線 60
6.1.4 基於Swift顯示指定樣式的文本 62
6.2 按鈕 63
6.3 基於Objective-C聯合使用文本框、文本視圖和按鈕 63
6.3.1 創建項目 64
6.3.2 設計界面 64
6.3.3 創建並連線輸出口和操作 69
6.3.4 實現按鈕模板 70
6.3.5 隱藏鍵盤 71
6.3.6 實現應用程式邏輯 73
6.3.7 總結執行 74
6.4 基於Swift聯合使用文本框、文本視圖和按鈕 74
6.5 基於Swift自定義按鈕 74
第7章 滑塊控制項、步進控制項和圖像視圖控制項 76
7.1 滑塊控制項 76
7.1.1 滑塊控制項的基本屬性 76
7.1.2 使用素材圖片實現滑塊特效 77
7.1.3 實現各種各樣的滑塊 78
7.1.4 基於Swift實現UISlider控制項 80
7.2 步進控制項 81
7.2.1 步進控制項的基本屬性 81
7.2.2 自定義步進控制項的樣式 81
7.2.3 基於Swift使用步進控制項自動增減數字 83
7.3 圖像視圖控制項 83
7.3.1 UIImageView的常用屬性和方法 83
7.3.2 滾動瀏覽圖片 84
7.3.3 實現圖片瀏覽器 85
7.3.4 基於Swift使用UIImageView控制項 87
第8章 開關控制項和分段控制項 89
8.1 開關控制項 89
8.1.1 開關控制項的屬性 89
8.1.2 顯示開關的狀態 90
8.1.3 顯示默認打開的開關控制項 91
8.1.4 基於Swift控制是否顯示密碼明文 91
8.2 分段控制項 92
8.2.1 分段控制項的屬性和方法 92
8.2.2 添加圖示和文本 94
8.3 基於Objective-C聯合使用開關控制項和分段控制項 95
8.4 基於Swift聯合使用開關控制項和分段控制項 97
第9章 可滾動視圖控制項、翻頁控制項和新的Web視圖控制項 98
9.1 可滾動視圖控制項 98
9.1.1 UIScrollView的基本屬性 98
9.1.2 使用可滾動視圖控制項 98
9.1.3 滑動隱藏狀態欄 101
9.1.4 基於Swift使用UIScrollView控制項 101
9.2 翻頁控制項 103
9.2.1 UIPageControll控制項的基礎知識 103
9.2.2 實現圖片播放器 103
9.2.3 實現圖片瀏覽程式 105
9.2.4 基於Swift使用UIPageControl設定4個界面 106
9.3 新的Web視圖控制項——WKWebView 107
9.3.1 WKWebView的基礎知識 107
9.3.2 基於Objective-C使WKWebView與JavaScript互動 109
9.3.3 基於Swift使WKWebView與JavaScript互動 110
第 10章 提醒和操作表 112
10.1 UIAlertController的基礎知識 112
10.1.1 提醒視圖 112
10.1.2 操作表視圖 112
10.2 使用UIAlertController 112
10.2.1 簡單的對話框例子 113
10.2.2 “警告”樣式 114
10.2.3 文本對話框 114
10.2.4 上拉選單 116
10.2.5 釋放對話框控制器 118
10.3 實戰演練 119
10.3.1 實現自定義的操作表視圖 119
10.3.2 自定義提醒表視圖和操作表視圖 120
10.3.3 自定義UIAlertController控制項的外觀 122
10.3.4 基於Swift實現提醒框 124
第 11章 工具列和選擇器 125
11.1 工具列 125
11.1.1 工具列的基礎知識 125
11.1.2 創建帶圖示按鈕的工具列 126
11.1.3 基於Swift使用UIToolbar製作網頁瀏覽器 128
11.2 選擇器視圖 130
11.2.1 選擇器視圖的基礎知識 130
11.2.2 實現兩個UIPickerView控制項間的數據依賴 132
11.2.3 基於Objective-C自定義選擇器 135
11.2.4 基於Swift自定義選擇器 143
11.2.5 實現單列選擇器 143
11.2.6 基於Swift實現“星期”選擇框 144
11.3 日期選擇控制項 146
11.3.1 基於Swift使用UIDatePicker控制項 146
11.3.2 實現日期選擇器 147
11.3.3 使用日期選擇器自動選擇時間 150
第 12章 表視圖 152
12.1 表視圖的基礎知識 152
12.1.1 表視圖的外觀 152
12.1.2 表單元格 152
12.1.3 添加表視圖 153
12.1.4 UITableView詳解 154
12.2 實戰演練 157
12.2.1 循環創建多個UITableViewCell 157
12.2.2 實現單元格的圓角樣式效果 158
12.2.3 基於Objective-C使用表視圖 161
12.2.4 基於Swift使用表視圖 166
第 13章 活動指示器、進度條和檢索條 167
13.1 活動指示器 167
13.1.1 實現不同外觀的活動指示器效果 167
13.1.2 基於Swift使用UIActivityIndicatorView控制項 168
13.2 進度條 169
13.2.1 自定義進度條的外觀樣式 170
13.2.2 實現多個具有動態條紋背景的進度條 170
13.2.3 基於Swift實現自定義進度條效果 173
13.3 檢索條 174
13.3.1 在查找信息輸入關鍵字時實現自動提示功能 175
13.3.2 實現文字輸入的自動填充和自動提示功能 179
13.3.3 使用UISearchBar控制項快速搜尋信息 180
13.3.4 基於Objective-C在表視圖中實現信息檢索 183
13.3.5 基於Swift在表視圖中實現信息檢索 184
第 14章 UIView詳解 185
14.1 UIView基礎 185
14.1.1 UIView的結構 185
14.1.2 視圖架構 187
14.1.3 視圖層次和子視圖管理 188
14.1.4 視圖繪製周期 188
14.1.5 UIView的常用屬性 188
14.2 實戰演練 189
14.2.1 給任意UIView視圖的四條框線加上陰影 189
14.2.2 給UIView加上各種圓角、框線效果 190
14.2.3 使用UIView控制項實現彈出式動畫表單效果 191
14.2.4 基於Swift創建滾動圖片的瀏覽器界面 192
14.2.5 基於Objective-C創建產品展示列表 194
14.2.6 基於Swift創建產品展示列表 195
第 15章 視圖控制器 196
15.1 UIViewController的基礎知識 196
15.1.1 UIViewController的常用屬性和方法 196
15.1.2 實現可以移動切換的視圖效果 197
15.1.3 實現手動旋轉螢幕的效果 198
15.2 使用UINavigationController 199
15.2.1 UINavigationController詳解 199
15.2.2 實現界面導航欄 201
15.2.3 基於Objective-C使用導航控制器展現3個場景 202
15.2.4 基於Swift使用導航控制器展現3個場景 204
15.3 選項卡欄控制器 204
15.3.1 選項卡欄和選項卡欄項 204
15.3.2 使用選項卡欄控制器構建3個場景 206
15.3.3 使用動態單元格定製表格行 207
15.3.4 基於Swift開發界面選擇控制器 208
第 16章 實現多場景 210
16.1 多場景故事板 210
16.1.1 多場景故事板的基礎知識 210
16.1.2 創建多場景項目 211
16.1.3 實現多個視圖之間的切換 214
16.2 基於Objective-C使用第二個視圖來編輯第 一個視圖中的信息 217
16.3 基於Swift使用第二個視圖來編輯第 一個視圖中的信息 221
第 17章 UICollectionView控制項和UIVisualEffectView控制項 222
17.1 UICollectionView控制項 222
17.1.1 UICollectionView的構成 222
17.1.2 自定義的UICollectionViewLayout 223
17.1.3 使用UICollectionView控制項實現格線效果 223
17.1.4 使用UICollectionView控制項實現大小不相同的格線效果 226
17.1.5 基於Swift實現不同顏色方塊的布局效果 229
17.2 UIVisualEffectView控制項 229
17.2.1 UIVisualEffectView的基礎知識 230
17.2.2 使用UIVisualEffectView控制項實現模糊特效 231
17.2.3 使用UIVisualEffectView
控制項實現Vibrancy效果 232
17.2.4 使用UIVisualEffectView控制項在螢幕中實現模糊效果 233
17.2.5 基於Swift編碼實現指定圖像的模糊效果 235
第 18章 iPad彈出框和iPad分割視圖控制器 237
18.1 iPad彈出框 237
18.1.1 創建彈出框 237
18.1.2 創建彈出切換 237
18.1.3 彈出模態視圖 239
18.2 iPad分割視圖控制器 240
18.2.1 分割視圖控制器的基礎知識 240
18.2.2 使用分割視圖控制器 242
第 19章 界面旋轉、大小和全螢幕處理 244
19.1 啟用界面旋轉 244
19.1.1 界面旋轉的基礎知識 244
19.1.2 基於Swift實現界面自適應 245
19.1.3 基於Objective-C實現界面元素自適應 246
19.1.4 基於Swift實現界面元素自適應 246
19.2 設計可旋轉和可調整大小的界面 247
19.2.1 自動旋轉和自動調整大小 247
19.2.2 調整框架 247
19.2.3 切換視圖 247
19.2.4 使用IB創建可旋轉和調整大小的界面 247
19.2.5 在旋轉時調整控制項 249
19.2.6 基於Swift實現螢幕視圖的自動切換 253
第 20章 圖形繪製、圖像處理、圖層和動畫 255
20.1 圖形繪製 255
20.1.1 iOS的繪圖機制 255
20.1.2 在螢幕中繪製三角形 255
20.1.3 使用Core Graphics實現繪圖操作 256
20.2 圖像處理 259
20.2.1 實現顏色選擇器/調色板功能 259
20.2.2 在螢幕中繪製圖像 260
20.3 圖層 261
20.3.1 視圖和圖層 261
20.3.2 實現圖片、文字以及翻轉效果 262
20.3.3 滑動展示不同的圖片 262
20.3.4 基於Swift演示CALayer圖層的用法 263
20.4 動畫 264
20.4.1 UIImageView動畫 265
20.4.2 UIView 265
20.4.3 Core Animation詳解 266
20.4.4 基於Swift處理圖形圖像的人臉檢測 266
20.4.5 基於Objective-C聯合使用圖像動畫、滑塊和步進控制項 269
20.4.6 基於Swift聯合使用圖像動畫、滑塊和步進控制項 273
第 21章 多媒體開發 274
21.1 使用AudioToolbox框架 274
21.1.1 聲音服務的基礎知識 274
21.1.2 播放指定的聲音檔案 275
21.1.3 播放任意位置的音頻 276
21.2 提醒和振動 276
21.2.1 播放提醒音並振動 277
21.2.2 基於Swift實現兩種類型的振動效果 277
21.3 AV Foundation框架 278
21.3.1 準備工作 278
21.3.2 基於Swift使用AVAudioPlayer播放和暫停指定的MP3 278
21.3.3 使用AVKit框架播放列表中的視頻 279
21.3.4 使用AVKit框架播放本地視頻 281
21.3.5 使用AVKit框架播放網路視頻 282
21.4 圖像選擇器 282
21.4.1 使用圖像選擇器 282
21.4.2 基於Objective-C獲取照片庫中的圖片 283
21.4.3 基於Swift獲取照片庫中的圖片 285
第 22章 分屏多任務 287
22.1 分屏多任務基礎 287
22.1.1 分屏多任務的開發環境 287
22.1.2 Slide Over和Split View 288
22.1.3 畫中畫 289
22.2 實戰演練 290
22.2.1 基於Swift使用SlideOver多任務 290
22.2.2 基於Objective-C使用SplitView多任務 293
22.2.3 基於Swift使用SplitView多任務 295
22.2.4 基於Swift開發一個分割多視圖的瀏覽器 296
第 23章 定位處理 300
23.1 通過iOS模擬器調試定位程式的方法 300
23.2 Core Location框架 301
23.2.1 Core Location的基礎知識 301
23.2.2 使用流程 301
23.2.3 基於Swift通過定位顯示當前的位置信息 302
23.3 獲取位置 305
23.3.1 位置管理器委託 306
23.3.2 獲取航向 306
23.3.3 定位當前的位置信息 307
23.4 基於Objective-C創建支持定位的應用程式 308
23.4.1 創建項目 309
23.4.2 實現應用程式邏輯 310
23.5 基於Swift創建支持定位的應用程式 312
第 24章 讀寫應用程式的數據 313
24.1 iOS應用程式和數據存儲 313
24.2 用戶默認設定 314
24.3 設定束 315
24.3.1 設定束基礎 315
24.3.2 基於Objective-C通過隱式項實現手電筒程式 316
24.3.3 基於Swift通過隱式項實現手電筒程式 318
24.4 直接訪問檔案系統 318
24.4.1 應用程式數據的存儲位置 319
24.4.2 獲取檔案路徑 319
24.4.3 基於Objective-C實現用戶信息收集器 320
24.4.4 基於Swift實現用戶信息收集器 323
24.5 核心數據 323
24.5.1 Core Data的基礎知識 324
24.5.2 使用Core Data 動態添加、刪除數據 324
第 25章 觸摸、手勢識別和Force Touch 326
25.1 多點觸摸和手勢識別的基礎知識 326
25.2 觸摸處理 326
25.2.1 iOS中的手勢操作 327
25.2.2 使用觸摸的方式移動視圖 327
25.2.3 基於Swift觸摸挪動彩色方塊 328
25.3 手勢處理 332
25.3.1 手勢處理的基礎知識 332
25.3.2 基於Swift識別手勢並移動螢幕中的方塊 333
25.3.3 基於Objective-C實現手勢識別器 336
25.3.4 基於Swift實現手勢識別器 338
25.4 全新感應功能——Force Touch 338
25.4.1 Force Touch的基礎知識 339
25.4.2 使用Force Touch 339
25.4.3 基於Swift為應用程式添加3D Touch手勢 341
第 26章 和硬體之間的互動 343
26.1 加速計和陀螺儀 343
26.1.1 加速計 343
26.1.2 陀螺儀 344
26.1.3 基於Swift使用Motion感測器 344
26.1.4 基於Objective-C檢測手機的傾斜和旋轉 346
26.1.5 基於Swift檢測手機的傾斜和旋轉 350
26.2 訪問朝向和運動數據 352
26.2.1 兩種方法 352
26.2.2 基於Objective-C檢測當前設備的朝向 353
26.2.3 基於Swift檢測當前設備的朝向 355
第 27章 地址簿和郵件 356
27.1 Contacts框架 356
27.1.1 Contacts框架中的主要類 356
27.1.2 ContactsUI框架 357
27.1.3 用Contacts框架獲取通訊錄信息 357
27.2 Message UI電子郵件 359
27.2.1 Message UI基礎 359
27.2.2 基於Swift使用Message UI傳送郵件 360
第 28章 開發通用的應用程式 362
28.1 開發通用應用程式的方法 362
28.2 基於Objective-C使用通用程式模板創建通用應用程式 369
28.2.1 創建項目 369
28.2.2 實現應用程式邏輯 369
28.3 基於Swift使用通用程式模板創建通用應用程式 370
28.4 使用視圖控制器 370
28.4.1 創建項目 370
28.4.2 實現應用程式邏輯 371
28.5 創建基於主-從視圖的應用程式 372
28.5.1 創建項目 372
28.5.2 調整iPad界面 373
28.5.3 調整iPhone界面 374
28.5.4 實現應用程式數據源 375
28.5.5 實現主視圖控制器 377
28.5.6 實現細節視圖控制器 379
28.5.7 調試運行 380
第 29章 Touch ID詳解 381
29.1 開發Touch ID應用程式 381
29.1.1 Touch ID的驗證 381
29.1.2 開發Touch ID應用程式的步驟 382
29.2 使用Touch ID認證 383
29.3 使用Touch ID密碼和指紋認證 384
29.4 關於Touch ID認證的綜合演練 389
29.5 一個封裝好的指紋驗證庫 391
第30章 使用擴展 395
30.1 擴展的基礎 395
30.1.1 擴展的生命周期 395
30.1.2 擴展和容器套用的互動 396
30.2 使用Photo Editing Extension 396
30.3 使用TodayExtension 401
30.4 使用Action Extension翻譯英文 404
30.5 使用Share Extension擴展實現分享功能 406
第31章 遊戲開發 412
31.1 Sprite Kit框架基礎 412
31.1.1 Sprite Kit的優點 412
31.1.2 Sprite Kit、Cocos2D、Cocos2D-X和Unity的選擇 412
31.2 開發Sprite Kit遊戲程式 412
31.3 開發射擊遊戲 422
第32章 在應用程式中加入Siri功能 429
32.1 Siri基礎 429
32.1.1 iOS中的Siri 429
32.1.2 HomeKit中的Siri指令 429
32.2 在iOS應用程式中使用Siri 430
32.2.1 iOS為平台整合與Extension開發所做的工作 430
32.2.2 Siri的處理流程 430
32.3 基於Swift在支付程式中使用Siri 431
32.4 使用Siri Shortcut創建自定義Siri 435
第33章 開發tvOS應用程式 440
33.1 tvOS開發基礎 440
33.1.1 tvOS介紹 440
33.1.2 tvOS開發方式介紹 440
33.1.3 打開遙控器模擬器 441
33.2 開發自定義tvOS應用程式 441
33.2.1 基於Swift開發簡單的按鈕回響程式 441
33.2.2 基於Swift開發猜謎遊戲 442
33.2.3 基於Swift在tvOS中使用表視圖 444
33.3 開發TVML應用程式 446
33.3.1 開發TVML應用程式的基本流程 446
33.3.2 基於Swift開發一個可回響的tvOS應用程式 448
第34章 使用Apple Pay 453
34.1 Apple Pay介紹 453
34.2 Apple Pay開發基礎 453
34.2.1 Apple Pay的支付流程 453
34.2.2 配置開發環境 454
34.2.3 創建支付請求 455
34.2.4 授權支付 457
34.2.5 處理支付 458
34.3 將Apple Pay接入應用程式 459
34.3.1 準備工作 459
34.3.2 具體實現 459
34.4 基於Objective-C使用圖示接入Apple Pay 463
34.5 基於Swift使用圖示接入Apple Pay 465
第35章 開發虛擬現實應用程式 468
35.1 虛擬現實和增強現實 468
35.2 使用ARKit 468
35.2.1 ARKit框架的基礎知識 468
35.2.2 ARKit與SceneKit的關係 469
35.2.3 ARKit的工作原理 469
35.3 基於Swift實現第 一個AR效果 470
35.3.1 準備工作 470
35.3.2 具體實現 471
第36章 蘋果的人工智慧 475
36.1 人工智慧概述 475
36.1.1 人工智慧是什麼 475
36.1.2 蘋果公司為人工智慧提供的工具——Create ML和Core ML 476
36.1.3 使用Create ML創建機器學習模型 476
36.2 實戰演練 478
36.2.1 基於Swift使用MobileNet.mlmodel模型識別照片 478
36.2.2 基於Swift使用自製的機器學習模型識別照片 481
36.2.3 基於Swift使用模型Inceptionv3.mlmodel識別照片 482
36.2.4 基於Objective-C使用模型Resnet50.mlmodel識別照片 484
36.2.5 基於Swift使用模型Resnet50.mlmodel識別照片 486
第37章 使用SwiftUI可視化技術 487
37.1 SwiftUI 487
37.2 實戰演練 487
37.2.1 第 一個SwiftUI程式 488
37.2.2 創建圖文組合視圖 491
第38章 Apple Watch與WatchKit 504
38.1 Apple Watch介紹 504
38.2 WatchKit開發詳解 505
38.2.1 搭建WatchKit開發環境 505
38.2.2 WatchKit架構 506
38.2.3 WatchKit布局 508
38.2.4 Glances和Notifications 508
38.2.5 Watch套用的生命周期 508
38.3 使用iOS 14新特性實現手錶分頁 509
38.4 基於SwiftUI開發一個計時器 511