《iOS11開發指南》是2019年7月人民郵電出版社出版的圖書,作者是管蕾。
基本介紹
- 書名:iOS11開發指南
- 作者:管蕾
- ISBN:9787115475602
- 頁數:712頁
- 定價:118元
- 出版社:人民郵電出版社
- 出版時間:2019年7月
- 裝幀:平裝
- 開本:16開
內容簡介,圖書目錄,
內容簡介
本書循序漸進甩寒記辯地講解了iOS 11套用開發的知識。書中從搭建開發環境講起,依次講解了Objective-C語言基礎,Swift 4.0語言基礎,Cocoa Touch,Xcode Interface Builder界面開發,使用Xcode編寫MVC程式,文本框和文本視圖,按鈕和標籤,滑塊、步進和圖像符辯妹,使用開關控制項和分段控制項,Web視圖控制項和可滾動視圖控制項,提醒和操作表,工具列,日期選擇器,表視圖,活動指示器,進度條和檢索條,UIView,視圖控制器,實現多場景和彈出框,iPad彈出框和分割視圖控制器,界面旋轉,圖形、圖像、圖層和動畫,聲音服務,多媒體套用,定位處理,觸摸,手勢識別和Force Touch,讀寫應用程式數據,觸摸和手勢識別,和硬體之間的操作,開發通用的項目程式,推服務和多執行緒,Touch ID,遊戲開發,HealthKit健康套用開發,watchOS 4智慧型手錶開發,分屏多任務,使用CocoaPods依賴管理,使用擴展(Extension),在程式中加入Siri功能,開發tvOS程式,開發Apple Pay程式,霉婆船炒開發虛擬現實程式,分屏多視圖播放器,tvOS電影庫系統等高 級知識。
本書內容全面,幾乎涵蓋了iOS 11套用開發所需要的主要內容,適合iOS開發初學者和iOS程式設計師學習,也可以作為相關培訓學校和高校相關專業的教學用書。
圖書目錄
* 1章 iOS開發入門 1
1.1 iOS系統介紹 1
1.1.1 iOS發展史 1
1.1.2 全新的版本——iOS 11 1
1.2 開始iOS 11開殼疊榆發之旅 2
1.3 工欲善其事,必先利其器——搭建開發
環境 3
1.3.1 Xcode介紹 4
1.3.2 下載並安裝Xcode 9 4
1.3.3 創建iOS 11項目並啟動模擬器 6
1.3.4 打開一個現有的iOS 11項目 8
1.4 iOS 11中的常用開發框架 8
1.4.1 Foundation框架簡介 8
1.4.2 Cocoa框架簡介 10
1.4.3 iOS程式框架 10
* 2章 使用Xcode開發環境想備滲詳解 12
2.1 基本面板介紹 12
2.1.1 調試工具列 12
2.1.2 導航面板介紹 13
2.1.3 檢查器面板 15
2.2 Xcode 9的基本操作 16
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 使用Xcode幫助 21
2.2.10 調試代捉故碼 21
2.3 使用Xcode 9幫助系統 22
第3章 Objective-C語言基礎 24
3.1 * 耀眼的新星 24
3.1.1 究* 何為Objective-C 24
3.1.2 為什麼選擇Objective-C 24
3.2 Objective-C的優點及缺點 25
3.3 一個簡單的例子 26
3.3.1 使用Xcode編輯代碼 26
3.3.2 基本元素介紹 27
3.4 數據類匪勸抹型和常量 31
3.4.1 int類型 32
3.4.2 float類型 33
3.4.3 double類型 33
3.4.4 char類型 34
3.4.5 字元常量 35
3.4.6 id類型 36
3.4.7 限定詞 37
3.4.8 總結基本數據類型 39
3.5 字元串 39
3.6 算術表達式 40
3.6.1 運算符的優先權 40
3.6.2 整數運算和一元負號運算符 41
3.6.3 模運算符 42
3.6.4 整型值和浮點值的相互轉換 43
3.6.5 類型轉換運算符 44
3.7 表達式 44
3.7.1 常量表達式 44
3.7.2 條件運算符 45
3.7.3 sizeof運算符 45
3.7.4 關係運算符 46
3.7.5 強制類型轉換運算符 46
3.8 位運算符 47
3.8.1 按位與運算符 47
3.8.2 按位或運算符 48
3.8.3 按位異或運算符 48
3.8.4 一次求反運算符 49
3.8.5 向左移位運算符 50
3.8.6 向右移位運算符 50
3.8.7 總結Objective-C的運算符 51
第4章 Swift語言基礎 52
4.1 Swift概述 52
4.1.1 Swift的創造者 52
4.1.2 Swift的優勢 52
4.1.3 * 新的Swift 4.0 53
4.2 數據類型和常量 54
4.2.1 int類型 54
4.2.2 float類型 55
4.2.3 double類型 55
4.2.4 char類型 55
4.2.5 字元常量 55
4.3 變數和常量 56
4.3.1 常量詳解 56
4.3.2 變數詳解 56
4.4 字元串和字元 57
4.4.1 字元串字面量 57
4.4.2 初始化空字元串 58
4.4.3 字元串可變性 58
4.4.4 值類型字元串 58
4.4.5 計算字元數量 59
4.4.6 連線字元串和字元 59
4.4.7 字元串插值 60
4.4.8 比較字元串 60
4.4.9 Unicode 61
4.5 流程控制 63
4.5.1 for循環(1) 63
4.5.2 for循環(2) 64
4.5.3 while循環 65
4.6 條件語句 66
4.6.1 if語句 66
4.6.2 switch語句 67
4.7 函式 68
4.7.1 函式的聲明與調用 68
4.7.2 函式的參數和返回值 69
4.8 實戰演練——使用Xcode創建Swift程式 70
第5章 Cocoa Touch框架 72
5.1 Cocoa Touch基礎 72
5.1.1 Cocoa Touch概述 72
5.1.2 Cocoa Touch中的框架 73
5.1.3 Cocoa Touch的優勢 73
5.2 iPhone的技術層 73
5.2.1 Cocoa Touch層 73
5.2.2 多媒體層 76
5.2.3 核心服務層 77
5.2.4 核心OS層 78
5.3 Cocoa Touch中的框架 78
5.3.1 Core Animation(圖形處理)框架 78
5.3.2 Core Audio(音頻處理)框架 79
5.3.3 Core Data(數據處理)框架 79
5.4 Cocoa中的類 80
5.4.1 核心類 81
5.4.2 數據類型類 82
5.4.3 UI界面類 83
5.5 國際化 85
第6章 Xcode Interface Builder界面開發 86
6.1 Interface Builder基礎 86
6.2 和Interface Builder密切相關的庫面板 88
6.3 Interface Builder採用的方法 88
6.4 Interface Builder中的故事板——Storyboarding 89
6.4.1 推出的背景 89
6.4.2 故事板的文檔大綱 90
6.4.3 文檔大綱的區域對象 91
6.5 創建一個界面 91
6.5.1 對象庫 91
6.5.2 將對象加入到視圖中 92
6.5.3 使用IB布局工具 93
6.6 定製界面外觀 95
6.6.1 使用屬性檢查器 95
6.6.2 設定輔助功能屬性 95
6.6.3 測試界面 96
6.7 iOS 11控制項的屬性 96
6.8 實戰演練——將設計界面連線到代碼(雙語實現:Objective-C版) 97
6.8.1 打開項目 97
6.8.2 輸出口和操作 98
6.8.3 創建到輸出口的連線 98
6.8.4 創建到操作的連線 100
6.9 實戰演練——將設計界面連線到代碼(雙語實現:Swift版) 101
6.10 實戰演練——純代碼實現UI設計 102
第7章 使用Xcode編寫MVC程式 104
7.1 MVC模式基礎 104
7.2 Xcode中的MVC 105
7.2.1 原理 105
7.2.2 模板* 是給予MVC的 105
7.3 在Xcode中實現MVC 106
7.3.1 視圖 106
7.3.2 視圖控制器 106
7.4 數據模型 108
7.5 實戰演練——使用模板Single View Application創建MVC程式(雙語實現:Objective-C版) 109
7.5.1 創建項目 109
7.5.2 規劃變數和連線 110
7.5.3 設計界面 112
7.5.4 創建並連線輸出口和操作 113
7.5.5 實現應用程式邏輯 114
7.5.6 生成應用程式 115
7.6 實戰演練——使用模板Single View Application創建MVC程式(雙語實現:Swift版) 115
第8章 文本框和文本視圖 116
8.1 文本框(UITextField) 116
8.1.1 文本框基礎 116
8.1.2 實戰演練——控制是否顯示TextField中信息 116
8.1.3 實戰演練——實現用戶登錄框界面 118
8.1.4 實戰演練——限制輸入文本的
長度 119
8.1.5 實戰演練——實現一個UITextField控制項(Swift版) 120
8.2 文本視圖(UITextView) 121
8.2.1 文本視圖基礎 121
8.2.2 實戰演練——拖動輸入的文本 122
8.2.3 實戰演練——自定義設定文字的行間距 122
8.2.4 實戰演練——自定義 UITextView 控制項的樣式 123
8.2.5 實戰演練——在指 定的區域中輸入文本(Swift版) 125
8.2.6 實戰演練——通過文本提示被單擊的按鈕(雙語實現:Objective-C版) 126
8.2.7 實戰演練——在螢幕中顯示被單擊的按鈕(雙語實現:Swift版) 126
第9章 按鈕和標籤 127
9.1 標籤(UILabel) 127
9.1.1 標籤(UILabel)的屬性 127
9.1.2 實戰演練——使用UILabel顯示一段文本 127
9.1.3 實戰演練——為文字分別添加上劃線、下劃線和中劃線 129
9.1.4 實戰演練——顯示被觸摸單詞的
字母 130
9.1.5 實戰演練——顯示一個指 定樣式的文本(Swift版) 130
9.2 按鈕(UIButton) 131
9.2.1 按鈕基礎 132
9.2.2 實戰演練——自定義設定按鈕的
圖案 132
9.2.3 實戰演練——實現了一個變換形狀
動畫按鈕 134
9.3 實戰演練——聯合使用文本框、文本視圖和按鈕(雙語實現:Objective-C版) 135
9.3.1 創建項目 135
9.3.2 設計界面 136
9.3.3 創建並連線輸出口和操作 140
9.3.4 實現按鈕模板 141
9.3.5 隱藏鍵盤 142
9.3.6 實現應用程式邏輯 144
9.3.7 總結執行 145
9.4 實戰演練——聯合使用文本框、文本視圖和按鈕(雙語實現:Swift版) 145
9.5 實戰演練——自定義一個按鈕
(Swift版) 145
* 10章 滑塊、步進和圖像 147
10.1 滑塊控制項(UISlider) 147
10.1.1 Slider控制項的基本屬性 147
10.1.2 實戰演練——使用素材圖片實現滑動條特效 148
10.1.3 實戰演練——實現自動顯示刻度的滑動條 149
10.1.4 實戰演練——實現各種各樣的
滑塊 150
10.1.5 實戰演練——自定義實現UISlider控制項功能(Swift版) 152
10.2 步進控制項(UIStepper) 153
10.2.1 步進控制項介紹 153
10.2.2 實戰演練——自定義步進控制項的樣式 154
10.2.3 實戰演練——設定指 定樣式的步進控制項 155
10.2.4 實戰演練——使用步進控制項自動增減數字(Swift版) 156
10.3 圖像視圖控制項(UIImageView) 157
10.3.1 UIImageView的常用操作 157
10.3.2 實戰演練——實現圖像的模糊
效果 157
10.3.3 實戰演練——滾動瀏覽圖片 159
10.3.4 實戰演練——實現一個圖片瀏
覽器 160
10.3.5 實戰演練——使用UIImageView控制項(Swift版) 162
* 11章 開關控制項和分段控制項 163
11.1 開關控制項(UISwitch) 163
11.1.1 開關控制項基礎 163
11.1.2 實戰演練——改變UISwitch的文本和顏色 163
11.1.3 實戰演練——顯示具有開關狀態的開關 164
11.1.4 實戰演練——顯示一個默認打開的UISwitch控制項 165
11.1.5 實戰演練——控制是否顯示密碼明文(Swift版) 165
11.2 分段控制項(UISegmentedControl) 166
11.2.1 分段控制項的屬性和方法 167
11.2.2 實戰演練——使用 UISegmentedControl控制項 168
11.2.3 實戰演練——添加圖示和文本 170
11.2.4 實戰演練——使用分段控制項控制背景顏色 171
11.2.5 實戰演練——使用UISegmented Control控制項(Swift版) 172
11.3 實戰演練——聯合使用開關控制項和分段控制項(雙版實現:Objective-C版) 173
11.4 實戰演練——聯合使用開關控制項和分段控制項(雙版實現:Swift版) 175
* 12章 Web視圖控制項、可滾動視圖控制項和
翻頁控制項 176
12.1 Web視圖(UIWebView) 176
12.1.1 Web視圖基礎 176
12.1.2 實戰演練——在UIWebView控制項中調用JavaScript 腳本 177
12.1.3 實戰演練——使用滑動條動態改變字型的大小 178
12.1.4 實戰演練——實現一個迷你瀏覽器工具 179
12.1.5 實戰演練——使用UIWebView控制項載入網頁(Swift版) 181
12.2 可滾動的視圖(UIScrollView) 182
12.2.1 UIScrollView的基本用法 182
12.2.2 實戰演練——使用可滾動視圖
控制項 183
12.2.3 實戰演練——滑動隱藏狀態欄 186
12.2.4 實戰演練——使用UIScrollView
控制項(Swift版) 186
12.3 翻頁控制項(UIPageControl) 187
12.3.1 PageControll控制項基礎 187
12.3.2 實戰演練——自定義 UIPageControl 控制項的外觀樣式 188
12.3.3 實戰演練——實現一個圖片播
放器 189
12.3.4 實戰演練——實現一個圖片瀏覽程式 191
12.3.5 實戰演練——使用UIPageControl控制項設定4個界面(Swift版) 191
12.4 實戰演練——聯合使用開關、分段控制項和Web視圖控制項(雙語實現:
Objective-C版) 193
12.4.1 創建項目 194
12.4.2 設計界面 194
12.4.3 創建並連線輸出口和操作 196
12.4.4 實現應用程式邏輯 197
12.4.5 調試運行 200
12.5 實戰演練——聯合使用開關、分段控制項和Web視圖控制項(雙語實現:Swift版) 200
* 13章 提醒和操作表 201
13.1 UIAlertController基礎 201
13.1.1 提醒視圖 201
13.1.2 操作表基礎 201
13.2 使用UIAlertController 201
13.2.1 一個簡單的對話框例子 202
13.2.2 “警告”樣式 203
13.2.3 文本對話框 203
13.2.4 上拉選單 205
13.2.5 釋放對話框控制器 207
13.3 實戰演練 207
13.3.1 實戰演練——實現一個自定義操作表視圖 207
13.3.2 實戰演練——分別自定義實現提醒表視圖和操作表視圖 208
13.3.3 實戰演練——自定義UIAlertController控制項的外觀 209
13.3.4 實戰演練——實現一個提醒框效果(Swift版) 211
* 14章 工具列、日期選擇器 212
14.1 工具列(UIToolbar) 212
14.1.1 工具列基礎 212
14.1.2 實戰演練——聯合使用UIToolBar和UIView 213
14.1.3 實戰演練——自定義UIToolBar控制項的顏色和樣式 214
14.1.4 實戰演練——創建一個帶有圖示按鈕的工具列 215
14.1.5 實戰演練——使用UIToolbar製作一個網頁瀏覽器(Swift版) 216
14.2 選擇器視圖(UIPickerView) 218
14.2.1 選擇器視圖基礎 218
14.2.2 實戰演練——實現兩個UIPickerView控制項間的數據依賴 219
14.2.3 實戰演練——自定義一個選擇器
(雙語實現:Objective-C實現) 222
14.2.4 實戰演練——自定義一個選擇器(雙語實現:Swift版) 229
14.2.5 實戰演練——實現一個單列
選擇器 229
14.2.6 實戰演練——實現一個“星期”選擇框 230
14.3 日期選擇控制項(UIDatePicker) 231
14.3.1 UIDatePicker基礎 231
14.3.2 實戰演練——使用UIDatePicker控制項(Swift版) 233
14.3.3 實戰演練——實現一個日期
選擇器 234
14.3.4 實戰演練——使用日期選擇器自動選擇一個時間 240
* 15章 表視圖(UITable) 242
15.1 表視圖基礎 242
15.1.1 表視圖的外觀 242
15.1.2 表單元格 242
15.1.3 添加表視圖 242
15.1.4 UITableView詳解 244
15.2 實戰演練 246
15.2.1 實戰演練——自定義UITableViewCell 246
15.2.2 實戰演練——在表視圖中動態操作單元格(Swift版) 249
15.2.3 實戰演練——拆分表視圖(雙語實現:Objctive-C版) 251
15.2.4 實戰演練——拆分表視圖(雙語實現:Swift版) 252
* 16章 活動指示器、進度條和檢索條 253
16.1 活動指示器(UIActivityIndicatorView) 253
16.1.1 活動指示器基礎 253
16.1.2 實戰演練——自定義UIActivity IndicatorView控制項的樣式 253
16.1.3 實戰演練——自定義活動指示器的顯示樣式 255
16.1.4 實戰演練——實現不同外觀的活動指示器效果 258
16.1.5 實戰演練——使用UIActivityIndicator View控制項(Swift版) 259
16.2 進度條(UIProgressView) 260
16.2.1 進度條基礎 261
16.2.2 實戰演練——自定義進度條的外觀樣式 261
16.2.3 實戰演練——實現多個具有動態條紋背景的進度條 261
16.2.4 實戰演練——自定義一個指 定外觀樣式的進度條 264
16.2.5 實戰演練——實現自定義進度條效果(Swift版) 268
16.3 檢索條(UISearchBar) 269
16.3.1 檢索條基礎 269
16.3.2 實戰演練——在查找信息輸入關鍵字時實現自動提示功能 270
16.3.3 實戰演練——實現文字輸入的自動填充和自動提示功能 273
16.3.4 實戰演練——使用檢索控制項快速搜尋信息 274
16.3.5 實戰演練——使用UISearchBar控制項(Swift版) 277
16.3.6 實戰演練——在表視圖中實現信息檢索(雙語實現:Objective-C版) 278
16.3.7 實戰演練——在表視圖中實現信息檢索(雙語實現:Swift版) 281
* 17章 UIView詳解 282
17.1 UIView基礎 282
17.1.1 UIView的結構 282
17.1.2 視圖架構 284
17.1.3 視圖層次和子視圖管理 284
17.1.4 視圖繪製周期 285
17.1.5 UIView的常見套用 285
17.2 實戰演練 286
17.2.1 實戰演練—給任意UIView視圖四條框線加上陰影 286
17.2.2 實戰演練——給UIView加上各種圓角、框線效果 287
17.2.3 實戰演練——使用UIView控制項實現彈出式動畫表單效果 288
17.2.4 實戰演練——創建一個滾動圖片瀏覽器(Swift版) 289
17.2.5 實戰演練——創建一個產品展示列表(雙語實現:Objctive-C版) 290
17.2.6 實戰演練——創建一個產品展示列表(雙語實現:Swift版) 291
* 18章 視圖控制器 292
18.1 導航控制器(UIViewController)基礎 292
18.1.1 UIViewController的常用屬性和
方法 292
18.1.2 實戰演練——實現可以移動切換的視圖效果 293
18.1.3 實戰演練——實現手動旋轉螢幕的效果 293
18.2 使用UINavigationController 294
18.2.1 UINavigationController詳解 295
18.2.2 實戰演練——實現一個界面導航條功能 296
18.2.3 實戰演練——創建主從關係的
“主-子”視圖(Swift版) 299
18.2.4 實戰演練——使用導航控制器展現3個場景(雙語實現:Objective-C版) 300
18.2.5 實戰演練——使用導航控制器展現3個場景(雙語實現:
Swift版) 303
18.3 選項卡欄控制器 304
18.3.1 選項卡欄和選項卡欄項 304
18.3.2 實戰演練——使用選項卡欄控制器構建3個場景 306
18.3.3 實戰演練——使用動態單元格定製表格行 310
18.3.4 實戰演練——開發一個界面選擇控制器(Swift版) 311
* 19章 實現多場景和彈出框 313
19.1 多場景故事板 313
19.1.1 多場景故事板基礎 313
19.1.2 創建多場景項目 314
19.1.3 實戰演練——實現多個視圖之間的切換 317
19.1.4 實戰演練——使用* 二個視圖來編輯* 一個視圖中的信息(雙語實現:Objective-C版) 320
19.1.5 實戰演練——使用* 二個視圖來編輯* 一個視圖中的信息(雙語實現:Swift版) 323
* 20章 UICollectionView和UIVisualEffectView
控制項 324
20.1 UICollectionView控制項詳解 324
20.1.1 UICollectionView的構成 324
20.1.2 實現一個簡單的UICollectionView 325
20.1.3 自定義的UICollectionViewLayout 327
20.1.4 實戰演練——使用UICollectionView控制項實現格線效果 328
20.1.5 實戰演練——實現大小不相同的格線效果 331
20.1.6 實戰演練——實現不同顏色方塊的布局效果(Swift版) 333
20.2 UIVisualEffectView控制項詳解 333
20.2.1 UIVisualEffectView基礎 334
20.2.2 使用Visual Effect View控制項實現
模糊特效 335
20.2.3 使用Visual Effect View實現Vibrancy效果 336
20.2.4 實戰演練——在螢幕中實現模糊效果 337
20.2.5 實戰演練——在螢幕中實現遮罩效果 338
20.2.6 實戰演練——編碼實現指 定圖像的模糊效果(Swift版) 339
* 21章 iPad彈出框和分割視圖控制器 341
21.1 iPad彈出框控制器(UIPopoverPresentationController) 341
21.1.1 創建彈出框 341
21.1.2 創建彈出切換 341
21.1.3 實戰演練——彈出模態視圖 342
21.2 探索分割視圖控制器 343
21.2.1 分割視圖控制器基礎 343
21.2.2 實戰演練——使用表視圖(雙語實現:Objective-C版) 345
21.2.3 實戰演練——使用表視圖(雙語實現:Swift版) 349
21.2.4 實戰演練——創建基於主從關係的分割視圖(Swift版本) 350
* 22章 界面旋轉、大小和全螢幕處理 352
22.1 啟用界面旋轉 352
22.1.1 界面旋轉基礎 352
22.1.2 實戰演練——實現界面自適應(Swift版) 353
22.1.3 實戰演練——設定界面實現自適應(雙語實現:Objective-C版) 354
22.1.4 實戰演練——設定界面實現自適應(雙語實現:Swift版) 354
22.2 設計可旋轉和可調整大小的界面 355
22.2.1 自動旋轉和自動調整大小 355
22.2.2 調整框架 355
22.2.3 切換視圖 355
22.2.4 實戰演練——使用Interface Builder創建可旋轉和調整大小的界面 355
22.2.5 實戰演練——在旋轉時調整
控制項 357
22.2.6 實戰演練——旋轉時切換視圖 360
22.2.7 實戰演練——實現螢幕視圖的自動切換(Swift版) 363
* 23章 圖形、圖像、圖層和動畫 364
23.1 圖形處理 364
23.1.1 iOS的繪圖機制 364
23.1.2 實戰演練——在螢幕中繪製一個三角形 365
23.1.3 實戰演練——使用CoreGraphic實現繪圖操作 366
23.2 圖像處理 368
23.2.1 實戰演練——實現顏色選擇器/調色板功能 368
23.2.2 實戰演練——在螢幕中繪製一個圖像 369
23.3 圖層 369
23.3.1 視圖和圖層 369
23.3.2 實戰演練——實現圖片、文字以及翻轉效果 370
23.3.3 實戰演練——滑動展示不同的
圖片 371
23.3.4 實戰演練——演示CALayers圖層的用法(Swift版) 371
23.4 實現動畫 372
23.4.1 UIImageView動畫 372
23.4.2 視圖動畫UIView 372
23.4.3 Core Animation詳解 376
23.4.4 實戰演練——實現UIView分類動畫效果 376
23.4.5 實戰演練——動畫樣式顯示電量使用情況 378
23.4.6 實戰演練——圖形圖像的人臉檢測處理(Swift版) 381
23.4.7 實戰演練——聯合使用圖像動畫、滑塊和步進控制項(雙語實現:
Objective-C版) 382
23.4.8 實戰演練——聯合使用圖像動畫、滑塊和步進控制項(雙語實現:
Swift版) 390
* 24章 多媒體開發 391
24.1 使用AudioToolbox框架 391
24.1.1 聲音服務基礎 391
24.1.2 實戰演練——播放指 定的聲音
檔案 392
24.1.3 實戰演練——播放任意位置的
音頻 393
24.2 提醒和振動 393
24.2.1 播放提醒音 394
24.2.2 實戰演練——實現兩種類型的振動效果(Swift版) 394
24.2.3 實戰演練——實用iOS的提醒
功能 395
24.3 AV Foundation框架 401
24.3.1 準備工作 402
24.3.2 使用AV音頻播放器 402
24.3.3 實戰演練——使用AV Foundation框架播放視頻 402
24.3.4 實戰演練——使用AVAudioPlayer播放和暫停指 定的MP3播放(Swift版) 403
24.3.5 實戰演練——使用AVKit框架播放列表中的視頻 404
24.3.6 實戰演練——使用AVKit框架播放本地視頻 405
24.3.7 實戰演練——使用AVKit框架播放網路視頻 406
24.4 圖像選擇器(UIImagePickerController) 407
24.4.1 使用圖像選擇器 407
24.4.2 實戰演練——獲取照片庫的圖片 407
* 25章 分屏多任務 410
25.1 分屏多任務基礎 410
25.1.1 分屏多任務的開發環境 410
25.1.2 Slide Over和Split View基礎 411
25.1.3 畫中畫 412
25.2 實戰演練 413
25.2.1 實戰演練——使用SlideOver多任務(Swift版) 413
25.2.2 實戰演練——使用SplitView多任務(Swift版) 415
25.2.3 實戰演練——開發一個分割多視圖瀏覽器(Swift版) 419
* 26章 定位處理 422
26.1 iOS模擬器調試定位程式的方法 422
26.2 Core Location框架 423
26.2.1 Core Location基礎 423
26.2.2 使用流程 423
26.2.3 實戰演練——定位顯示當前的位置信息(Swift版) 425
26.3 獲取位置 428
26.3.1 位置管理器委託 429
26.3.2 獲取航向 430
26.3.3 實戰演練——定位當前的位置
信息 431
26.4 加入地圖功能 432
26.4.1 Map Kit基礎 432
26.4.2 為地圖添加標註 433
26.4.3 實戰演練——在地圖中定位當前的位置信息(Swift版) 434
26.4.4 實戰演練——在地圖中繪製導航線路 435
26.5 實戰演練——創建一個支持定位的套用
程式(雙語實現:Objective-C版) 436
26.5.1 創建項目 437
26.5.2 設計視圖 438
26.5.3 創建並連線輸出口 438
26.5.4 實現應用程式邏輯 438
26.5.5 生成應用程式 440
26.6 實戰演練——創建一個支持定位的應用程式
(雙語實現:Swift版) 440
26.7 實戰演練——實現地圖定位(雙語實現:Objective-C版) 441
26.8 實戰演練——實現地圖定位(雙語實現:Swift版) 442
* 27章 讀寫應用程式數據 443
27.1 iOS應用程式和數據存儲 443
27.2 用戶默認設定 444
27.3 設定束 444
27.3.1 設定束基礎 444
27.3.2 實戰演練——通過隱式首 選項實現一個手電筒程式(雙語實現:Objective-C版) 445
27.3.3 實戰演練——通過隱式首 選項實現一個手電筒程式(雙語實現:Swift版) 448
27.4 直接訪問檔案系統 448
27.4.1 應用程式數據的存儲位置 449
27.4.2 獲取檔案路徑 449
27.4.3 讀寫數據 450
27.4.4 讀取和寫入檔案 450
27.4.5 通過plist檔案存取檔案 452
27.4.6 保存和讀取檔案 453
27.4.7 檔案共享和檔案類型 453
27.4.8 實戰演練——實現一個用戶信息收集器(雙語實現:
Objective-C版) 454
27.4.9 實戰演練——實現一個用戶信息收集器(雙語實現:Swift版) 457
27.5 核心數據(Core Data) 458
27.5.1 Core Data基礎 458
27.5.2 實戰演練——使用CoreData 動態添加、刪除數據 459
27.6 網際網路數據 460
27.6.1 XML和JSON 460
27.6.2 實戰演練——使用JSON獲取網站
中的照片信息 463
* 28章 觸摸、手勢識別和Force Touch 466
28.1 多點觸摸和手勢識別基礎 466
28.2 觸摸處理 466
28.2.1 觸摸事件和視圖 467
28.2.2 iOS中的手勢操作 469
28.2.3 實戰演練——觸摸的方式移動
視圖 470
28.2.4 實戰演練——觸摸挪動彩色方塊(Swift版) 470
28.3 手勢處理 474
28.3.1 手勢處理基礎 474
28.3.2 實戰演練——識別手勢並移動螢幕中的方塊(Swift版) 477
28.3.3 實戰演練——實現一個手勢識別器(雙語實現:Objective-C版) 480
28.3.4 實戰演練——實現一個手勢識別器(雙語實現:Swift版) 485
28.4 全新感應功能——Force Touch(3D Touch)技術 485
28.4.1 Force Touch介紹 486
28.4.2 Force Touch APIs介紹 486
28.4.3 實戰演練——使用Force Touch 487
28.4.4 實戰演練——啟動Force Touch觸控面板 489
28.4.5 實戰演練——為應用程式添加3D Touch手勢(Swift版) 489
* 29章 和硬體之間的操作 491
29.1 加速計和陀螺儀 491
29.1.1 加速計基礎 491
29.1.2 陀螺儀 493
29.1.3 實戰演練——使用Motion感測器(Swift版) 494
29.1.4 實戰演練——檢測傾斜和旋轉(雙語實現:Objective-C版) 495
29.1.5 實戰演練——檢測傾斜和旋轉(雙語實現:Swift版) 499
29.2 訪問朝向和運動數據 500
29.2.1 兩種方法 500
29.2.2 實戰演練——檢測當前設備的朝向(雙語實現:Objective-C版) 502
29.2.3 實戰演練——檢測當前設備的朝向(雙語實現:Swift版) 503
第30章 地址簿、郵件、Twitter和短訊息 504
30.1 Contacts Framework框架 504
30.1.1 Contacts框架的主要構成類 504
30.1.2 使用Contact框架 505
30.1.3 實戰演練——使用Contacts框架獲取通信錄信息 505
30.2 Message UI電子郵件 507
30.2.1 Message UI基礎 507
30.2.2 實戰演練——使用Message UI傳送郵件(Swift版) 508
30.3 使用Twitter傳送推特信息 509
30.3.1 Twitter基礎 509
30.3.2 實戰演練——開發一個Twitter客戶端(Swift版) 509
30.4 實戰演練——聯合使用地址簿、電子郵件、Twitter和地圖(雙語實現:
Objective-C版) 511
30.4.1 創建項目 511
30.4.2 設計界面 512
30.4.3 創建並連線輸出口和操作 512
30.4.4 實現通信錄邏輯 513
30.4.5 實現地圖邏輯 513
30.4.6 實現電子郵件邏輯 514
30.4.7 實現Twitter邏輯 514
30.4.8 調試運行 514
30.5 實戰演練——聯合使用地址簿、電子郵件、Twitter和地圖(雙語實現:Swift版) 515
30.6 使用Messages.framework框架 515
30.6.1 Messages.framework框架介紹 515
30.6.2 實戰演練——調用並使用Messages.framework框架
(Swift版) 515
第31章 開發通用的項目程式 517
31.1 開發通用應用程式 517
31.1.1 在iOS 6中開發通用應用程式 517
31.1.2 在iOS 6+中開發通用應用程式 518
31.1.3 圖示檔案 524
31.1.4 啟動圖像 524
31.2 實戰演練——使用通用程式模板創建通用應用程式(雙語實現:Objective-C版) 524
31.2.1 創建項目 525
31.2.2 設計界面 525
31.2.3 創建並連線輸出口 526
31.2.4 實現應用程式邏輯 526
31.3 實戰演練——使用通用程式模板創建通用應用程式(雙語實現:Swift版) 527
31.4 實戰演練——使用視圖控制器 527
31.4.1 創建項目 527
31.4.2 設計界面 528
31.4.3 創建並連線輸出口 528
31.4.4 實現應用程式邏輯 528
31.4.5 生成應用程式 529
31.5 實戰演練——使用多個目標 529
31.5.1 將iPhone目標轉換為iPad目標 529
31.5.2 將iPad目標轉換為iPhone目標 530
31.6 實戰演練——創建基於“主—從”視圖的應用程式 530
31.6.1 創建項目 530
31.6.2 調整iPad界面 531
31.6.3 調整iPhone界面 532
31.6.4 實現應用程式數據源 533
31.6.5 實現主視圖控制器 535
31.6.6 實現細節視圖控制器 536
31.6.7 調試運行 537
第32章 推服務和多執行緒 538
32.1 推服務 538
32.1.1 推服務介紹 538
32.1.2 推服務的機制 539
32.1.3 iOS 中 PushNotificationIOS遠程推送的主要方法 539
32.1.4 在iOS中實現遠程推送通知的
步驟 540
32.1.5 實戰演練——在iOS系統中傳送3種形式的通知 543
32.2 多執行緒 545
32.2.1 多執行緒基礎 545
32.2.2 iOS中的多執行緒 547
32.2.3 執行緒的同步與鎖 551
32.2.4 執行緒的互動 552
32.3 ARC機制 553
32.3.1 ARC概述 553
32.3.2 ARC中的新規則 554
32.4 實戰演練——實現後台多執行緒處理(雙語實現:Objective-C版) 554
32.5 實戰演練——實現後台多執行緒處理(雙語實現:Swift版) 556
第33章 Touch ID詳解 557
33.1 開發Touch ID應用程式 557
33.1.1 Touch ID的官方資料 557
33.1.2 開發Touch ID應用程式的步驟 558
33.2 實戰演練——使用Touch ID認證 559
33.3 實戰演練——使用Touch ID密碼和指紋
認證 560
33.4 實戰演練——Touch ID認證的綜合
演練 564
第34章 使用CocoaPods依賴管理 567
34.1 使用CocoaPods基礎 567
34.2 安裝CocoaPods 567
34.2.1 基本安裝 567
34.2.2 快速安裝 568
34.3 使用CocoaPods 568
34.3.1 在自己的項目中使用CocoaPods 568
34.3.2 為自己的項目創建 podspec
檔案 570
34.3.3 生成第三方庫的幫助文檔 571
34.4 實戰演練——打開一個用CocoaPods
管理的開源項目 571
第35章 使用擴展(Extension) 574
35.1 擴展(Extension)基礎 574
35.1.1 擴展的生命周期 574
35.1.2 擴展和容器套用的互動 575
35.2 實戰演練——使用Photo Editing Extension(照片擴展) 575
35.3 實戰演練——使用TodayExtension(今 日提醒擴展) 581
35.4 實戰演練——使用Action Extension翻譯
英文 583
35.5 實戰演練——使用Share Extension擴展實現分享功能 586
第36章 遊戲開發 592
36.1 Sprite Kit框架基礎 592
36.1.1 Sprite Kit的優點和缺點 592
36.1.2 Sprite Kit、Cocos2D、Cocos2D-X和Unity的選擇 592
36.2 實戰演練——開發一個Sprite Kit遊戲
程式 593
36.3 實戰演練——開發一個射擊遊戲 601
第37章 watchOS 4智慧型手錶開發 607
37.1 Apple Watch介紹 607
37.2 WatchKit開發詳解 608
37.2.1 搭建WatchKit開發環境 608
37.2.2 WatchKit架構 609
37.2.3 WatchKit布局 610
37.2.4 Glances和Notifications(快速預覽信息) 610
37.2.5 Watch App的生命周期 611
37.3 開發Apple Watch應用程式 612
37.3.1 創建Watch套用 612
37.3.2 創建Glance界面 612
37.3.3 自定義通知界面 612
37.3.4 配置Xcode項目 613
37.4 實戰演練——實現AppleWatch垂直列表
界面布局 615
37.5 實戰演練——演示AppleWatch的日曆
事件 616
37.6 實戰演練——在手錶中控制小球的
移動 620
37.7 實戰演練——實現一個倒 計 時器 621
第38章 HealthKit健康套用開發 623
38.1 HealthKit基礎 623
38.1.1 HealthKit介紹 623
38.1.2 市面中的HealthKit套用現狀 623
38.1.3 接入HealthKit的好處 624
38.2 HealthKit開發基礎 624
38.2.1 HealthKit開發要求 624
38.2.2 HealthKit開發思路 625
38.3 實戰演練——讀寫HealthKit數據
信息 626
38.4 實戰演練——心率檢測(Swift版) 626
38.5 實戰演練——獲取行走的步數 629
38.6 實戰演練——獲取步數、跑步距離、體重和身高(Swift版) 630
第39章 在程式中加入Siri功能 632
39.1 Siri基礎 632
39.1.1 iOS 中的Siri 632
39.1.2 HomeKit中的Siri指令 632
39.2 在iOS應用程式中使用Siri 633
39.2.1 iOS對生態整合與Extension開發的努力 633
39.2.2 Siri功能將以Extension擴展的形式存在 633
39.2.3 創建Intents Extension 634
39.3 實戰演練——在iOS程式中使用Siri 638
39.4 實戰演練——在支付程式中使用Siri
(Swift版) 641
第40章 開發tvOS程式 645
40.1 tvOS開發基礎 645
40.1.1 tvOS系統介紹 645
40.1.2 tvOS開發方式介紹 645
40.1.3 打開遙控器的模擬器 646
40.2 使用Custom App方式 646
40.2.1 Custom App方式介紹 646
40.2.2 實戰演練——開發一個簡單的按鈕回響程式(Swift版) 646
40.2.3 實戰演練——開發一個猜謎遊戲(Swift版) 647
40.2.4 實戰演練——在tvOS中使用表視圖(Swift版) 649
40.3 使用TVML Apps方式 650
40.3.1 使用TVML Apps方式開發 651
40.3.2 實戰演練——開發一個可回響的tvOS程式(Swift版) 659
40.3.3 實戰演練——電影播放列表
(Swift版) 663
第41章 使用Apple Pay 665
41.1 Apple Pay介紹 665
41.2 Apple Pay開發基礎 665
41.2.1 Apple Pay支付流程 665
41.2.2 配置開發環境 666
41.2.3 創建支付請求 667
41.2.4 授 權支付 669
41.2.5 處理支付 671
41.3 實戰演練——Apple Pay接入應用程式 671
41.3.1 準備工作 671
41.3.2 具體實現 672
41.4 實戰演練——使用圖示接入Apple Pay 676
41.5 實戰演練——使用圖示接入Apple Pay(Swift版) 678
第42章 開發AR虛擬現實程式 681
42.1 虛擬現實和增強現實 681
42.2 使用ARKit 681
42.2.1 ARKit框架基礎 681
42.2.2 ARKit與SceneKit的關係 682
42.2.3 ARKit的工作原理 682
42.3 實戰演練——自定義實現飛機飛行場景的
AR效果 683
42.3.1 準備工作 683
42.3.2 具體實現 684
42.4 實戰演練——實現3種AR特效捕捉
功能 686
42.4.1 實現水平捕捉功能 686
42.4.2 實現飛機隨鏡頭飛行效果 688
42.4.3 實現環繞飛行效果 688
42.5 實戰演練——實現5種AR特效
(Swift版) 689
第43章 tvOS電影庫系統 695
43.1 tvOS電影庫系統介紹 695
43.2 系統介紹 695
43.3 使用Objective-C實現 697
43.4 使用Swift實現 703
43.5 系統擴展——優酷和土豆視頻 703
第44章 分屏多視圖播放器 704
44.1 分屏多視圖系統介紹 704
44.2 創建工程 704
44.3 分屏具體實現 705
44.3.1 實現主視圖界面 705
44.3.2 顯示某個視頻的基本信息 708
44.3.3 播放視頻 709
44.3.4 播放網頁嵌入式視頻 711
第3章 Objective-C語言基礎 24
3.1 * 耀眼的新星 24
3.1.1 究* 何為Objective-C 24
3.1.2 為什麼選擇Objective-C 24
3.2 Objective-C的優點及缺點 25
3.3 一個簡單的例子 26
3.3.1 使用Xcode編輯代碼 26
3.3.2 基本元素介紹 27
3.4 數據類型和常量 31
3.4.1 int類型 32
3.4.2 float類型 33
3.4.3 double類型 33
3.4.4 char類型 34
3.4.5 字元常量 35
3.4.6 id類型 36
3.4.7 限定詞 37
3.4.8 總結基本數據類型 39
3.5 字元串 39
3.6 算術表達式 40
3.6.1 運算符的優先權 40
3.6.2 整數運算和一元負號運算符 41
3.6.3 模運算符 42
3.6.4 整型值和浮點值的相互轉換 43
3.6.5 類型轉換運算符 44
3.7 表達式 44
3.7.1 常量表達式 44
3.7.2 條件運算符 45
3.7.3 sizeof運算符 45
3.7.4 關係運算符 46
3.7.5 強制類型轉換運算符 46
3.8 位運算符 47
3.8.1 按位與運算符 47
3.8.2 按位或運算符 48
3.8.3 按位異或運算符 48
3.8.4 一次求反運算符 49
3.8.5 向左移位運算符 50
3.8.6 向右移位運算符 50
3.8.7 總結Objective-C的運算符 51
第4章 Swift語言基礎 52
4.1 Swift概述 52
4.1.1 Swift的創造者 52
4.1.2 Swift的優勢 52
4.1.3 * 新的Swift 4.0 53
4.2 數據類型和常量 54
4.2.1 int類型 54
4.2.2 float類型 55
4.2.3 double類型 55
4.2.4 char類型 55
4.2.5 字元常量 55
4.3 變數和常量 56
4.3.1 常量詳解 56
4.3.2 變數詳解 56
4.4 字元串和字元 57
4.4.1 字元串字面量 57
4.4.2 初始化空字元串 58
4.4.3 字元串可變性 58
4.4.4 值類型字元串 58
4.4.5 計算字元數量 59
4.4.6 連線字元串和字元 59
4.4.7 字元串插值 60
4.4.8 比較字元串 60
4.4.9 Unicode 61
4.5 流程控制 63
4.5.1 for循環(1) 63
4.5.2 for循環(2) 64
4.5.3 while循環 65
4.6 條件語句 66
4.6.1 if語句 66
4.6.2 switch語句 67
4.7 函式 68
4.7.1 函式的聲明與調用 68
4.7.2 函式的參數和返回值 69
4.8 實戰演練——使用Xcode創建Swift程式 70
第5章 Cocoa Touch框架 72
5.1 Cocoa Touch基礎 72
5.1.1 Cocoa Touch概述 72
5.1.2 Cocoa Touch中的框架 73
5.1.3 Cocoa Touch的優勢 73
5.2 iPhone的技術層 73
5.2.1 Cocoa Touch層 73
5.2.2 多媒體層 76
5.2.3 核心服務層 77
5.2.4 核心OS層 78
5.3 Cocoa Touch中的框架 78
5.3.1 Core Animation(圖形處理)框架 78
5.3.2 Core Audio(音頻處理)框架 79
5.3.3 Core Data(數據處理)框架 79
5.4 Cocoa中的類 80
5.4.1 核心類 81
5.4.2 數據類型類 82
5.4.3 UI界面類 83
5.5 國際化 85
第6章 Xcode Interface Builder界面開發 86
6.1 Interface Builder基礎 86
6.2 和Interface Builder密切相關的庫面板 88
6.3 Interface Builder採用的方法 88
6.4 Interface Builder中的故事板——Storyboarding 89
6.4.1 推出的背景 89
6.4.2 故事板的文檔大綱 90
6.4.3 文檔大綱的區域對象 91
6.5 創建一個界面 91
6.5.1 對象庫 91
6.5.2 將對象加入到視圖中 92
6.5.3 使用IB布局工具 93
6.6 定製界面外觀 95
6.6.1 使用屬性檢查器 95
6.6.2 設定輔助功能屬性 95
6.6.3 測試界面 96
6.7 iOS 11控制項的屬性 96
6.8 實戰演練——將設計界面連線到代碼(雙語實現:Objective-C版) 97
6.8.1 打開項目 97
6.8.2 輸出口和操作 98
6.8.3 創建到輸出口的連線 98
6.8.4 創建到操作的連線 100
6.9 實戰演練——將設計界面連線到代碼(雙語實現:Swift版) 101
6.10 實戰演練——純代碼實現UI設計 102
第7章 使用Xcode編寫MVC程式 104
7.1 MVC模式基礎 104
7.2 Xcode中的MVC 105
7.2.1 原理 105
7.2.2 模板* 是給予MVC的 105
7.3 在Xcode中實現MVC 106
7.3.1 視圖 106
7.3.2 視圖控制器 106
7.4 數據模型 108
7.5 實戰演練——使用模板Single View Application創建MVC程式(雙語實現:Objective-C版) 109
7.5.1 創建項目 109
7.5.2 規劃變數和連線 110
7.5.3 設計界面 112
7.5.4 創建並連線輸出口和操作 113
7.5.5 實現應用程式邏輯 114
7.5.6 生成應用程式 115
7.6 實戰演練——使用模板Single View Application創建MVC程式(雙語實現:Swift版) 115
第8章 文本框和文本視圖 116
8.1 文本框(UITextField) 116
8.1.1 文本框基礎 116
8.1.2 實戰演練——控制是否顯示TextField中信息 116
8.1.3 實戰演練——實現用戶登錄框界面 118
8.1.4 實戰演練——限制輸入文本的
長度 119
8.1.5 實戰演練——實現一個UITextField控制項(Swift版) 120
8.2 文本視圖(UITextView) 121
8.2.1 文本視圖基礎 121
8.2.2 實戰演練——拖動輸入的文本 122
8.2.3 實戰演練——自定義設定文字的行間距 122
8.2.4 實戰演練——自定義 UITextView 控制項的樣式 123
8.2.5 實戰演練——在指 定的區域中輸入文本(Swift版) 125
8.2.6 實戰演練——通過文本提示被單擊的按鈕(雙語實現:Objective-C版) 126
8.2.7 實戰演練——在螢幕中顯示被單擊的按鈕(雙語實現:Swift版) 126
第9章 按鈕和標籤 127
9.1 標籤(UILabel) 127
9.1.1 標籤(UILabel)的屬性 127
9.1.2 實戰演練——使用UILabel顯示一段文本 127
9.1.3 實戰演練——為文字分別添加上劃線、下劃線和中劃線 129
9.1.4 實戰演練——顯示被觸摸單詞的
字母 130
9.1.5 實戰演練——顯示一個指 定樣式的文本(Swift版) 130
9.2 按鈕(UIButton) 131
9.2.1 按鈕基礎 132
9.2.2 實戰演練——自定義設定按鈕的
圖案 132
9.2.3 實戰演練——實現了一個變換形狀
動畫按鈕 134
9.3 實戰演練——聯合使用文本框、文本視圖和按鈕(雙語實現:Objective-C版) 135
9.3.1 創建項目 135
9.3.2 設計界面 136
9.3.3 創建並連線輸出口和操作 140
9.3.4 實現按鈕模板 141
9.3.5 隱藏鍵盤 142
9.3.6 實現應用程式邏輯 144
9.3.7 總結執行 145
9.4 實戰演練——聯合使用文本框、文本視圖和按鈕(雙語實現:Swift版) 145
9.5 實戰演練——自定義一個按鈕
(Swift版) 145
* 10章 滑塊、步進和圖像 147
10.1 滑塊控制項(UISlider) 147
10.1.1 Slider控制項的基本屬性 147
10.1.2 實戰演練——使用素材圖片實現滑動條特效 148
10.1.3 實戰演練——實現自動顯示刻度的滑動條 149
10.1.4 實戰演練——實現各種各樣的
滑塊 150
10.1.5 實戰演練——自定義實現UISlider控制項功能(Swift版) 152
10.2 步進控制項(UIStepper) 153
10.2.1 步進控制項介紹 153
10.2.2 實戰演練——自定義步進控制項的樣式 154
10.2.3 實戰演練——設定指 定樣式的步進控制項 155
10.2.4 實戰演練——使用步進控制項自動增減數字(Swift版) 156
10.3 圖像視圖控制項(UIImageView) 157
10.3.1 UIImageView的常用操作 157
10.3.2 實戰演練——實現圖像的模糊
效果 157
10.3.3 實戰演練——滾動瀏覽圖片 159
10.3.4 實戰演練——實現一個圖片瀏
覽器 160
10.3.5 實戰演練——使用UIImageView控制項(Swift版) 162
* 11章 開關控制項和分段控制項 163
11.1 開關控制項(UISwitch) 163
11.1.1 開關控制項基礎 163
11.1.2 實戰演練——改變UISwitch的文本和顏色 163
11.1.3 實戰演練——顯示具有開關狀態的開關 164
11.1.4 實戰演練——顯示一個默認打開的UISwitch控制項 165
11.1.5 實戰演練——控制是否顯示密碼明文(Swift版) 165
11.2 分段控制項(UISegmentedControl) 166
11.2.1 分段控制項的屬性和方法 167
11.2.2 實戰演練——使用 UISegmentedControl控制項 168
11.2.3 實戰演練——添加圖示和文本 170
11.2.4 實戰演練——使用分段控制項控制背景顏色 171
11.2.5 實戰演練——使用UISegmented Control控制項(Swift版) 172
11.3 實戰演練——聯合使用開關控制項和分段控制項(雙版實現:Objective-C版) 173
11.4 實戰演練——聯合使用開關控制項和分段控制項(雙版實現:Swift版) 175
* 12章 Web視圖控制項、可滾動視圖控制項和
翻頁控制項 176
12.1 Web視圖(UIWebView) 176
12.1.1 Web視圖基礎 176
12.1.2 實戰演練——在UIWebView控制項中調用JavaScript 腳本 177
12.1.3 實戰演練——使用滑動條動態改變字型的大小 178
12.1.4 實戰演練——實現一個迷你瀏覽器工具 179
12.1.5 實戰演練——使用UIWebView控制項載入網頁(Swift版) 181
12.2 可滾動的視圖(UIScrollView) 182
12.2.1 UIScrollView的基本用法 182
12.2.2 實戰演練——使用可滾動視圖
控制項 183
12.2.3 實戰演練——滑動隱藏狀態欄 186
12.2.4 實戰演練——使用UIScrollView
控制項(Swift版) 186
12.3 翻頁控制項(UIPageControl) 187
12.3.1 PageControll控制項基礎 187
12.3.2 實戰演練——自定義 UIPageControl 控制項的外觀樣式 188
12.3.3 實戰演練——實現一個圖片播
放器 189
12.3.4 實戰演練——實現一個圖片瀏覽程式 191
12.3.5 實戰演練——使用UIPageControl控制項設定4個界面(Swift版) 191
12.4 實戰演練——聯合使用開關、分段控制項和Web視圖控制項(雙語實現:
Objective-C版) 193
12.4.1 創建項目 194
12.4.2 設計界面 194
12.4.3 創建並連線輸出口和操作 196
12.4.4 實現應用程式邏輯 197
12.4.5 調試運行 200
12.5 實戰演練——聯合使用開關、分段控制項和Web視圖控制項(雙語實現:Swift版) 200
* 13章 提醒和操作表 201
13.1 UIAlertController基礎 201
13.1.1 提醒視圖 201
13.1.2 操作表基礎 201
13.2 使用UIAlertController 201
13.2.1 一個簡單的對話框例子 202
13.2.2 “警告”樣式 203
13.2.3 文本對話框 203
13.2.4 上拉選單 205
13.2.5 釋放對話框控制器 207
13.3 實戰演練 207
13.3.1 實戰演練——實現一個自定義操作表視圖 207
13.3.2 實戰演練——分別自定義實現提醒表視圖和操作表視圖 208
13.3.3 實戰演練——自定義UIAlertController控制項的外觀 209
13.3.4 實戰演練——實現一個提醒框效果(Swift版) 211
* 14章 工具列、日期選擇器 212
14.1 工具列(UIToolbar) 212
14.1.1 工具列基礎 212
14.1.2 實戰演練——聯合使用UIToolBar和UIView 213
14.1.3 實戰演練——自定義UIToolBar控制項的顏色和樣式 214
14.1.4 實戰演練——創建一個帶有圖示按鈕的工具列 215
14.1.5 實戰演練——使用UIToolbar製作一個網頁瀏覽器(Swift版) 216
14.2 選擇器視圖(UIPickerView) 218
14.2.1 選擇器視圖基礎 218
14.2.2 實戰演練——實現兩個UIPickerView控制項間的數據依賴 219
14.2.3 實戰演練——自定義一個選擇器
(雙語實現:Objective-C實現) 222
14.2.4 實戰演練——自定義一個選擇器(雙語實現:Swift版) 229
14.2.5 實戰演練——實現一個單列
選擇器 229
14.2.6 實戰演練——實現一個“星期”選擇框 230
14.3 日期選擇控制項(UIDatePicker) 231
14.3.1 UIDatePicker基礎 231
14.3.2 實戰演練——使用UIDatePicker控制項(Swift版) 233
14.3.3 實戰演練——實現一個日期
選擇器 234
14.3.4 實戰演練——使用日期選擇器自動選擇一個時間 240
* 15章 表視圖(UITable) 242
15.1 表視圖基礎 242
15.1.1 表視圖的外觀 242
15.1.2 表單元格 242
15.1.3 添加表視圖 242
15.1.4 UITableView詳解 244
15.2 實戰演練 246
15.2.1 實戰演練——自定義UITableViewCell 246
15.2.2 實戰演練——在表視圖中動態操作單元格(Swift版) 249
15.2.3 實戰演練——拆分表視圖(雙語實現:Objctive-C版) 251
15.2.4 實戰演練——拆分表視圖(雙語實現:Swift版) 252
* 16章 活動指示器、進度條和檢索條 253
16.1 活動指示器(UIActivityIndicatorView) 253
16.1.1 活動指示器基礎 253
16.1.2 實戰演練——自定義UIActivity IndicatorView控制項的樣式 253
16.1.3 實戰演練——自定義活動指示器的顯示樣式 255
16.1.4 實戰演練——實現不同外觀的活動指示器效果 258
16.1.5 實戰演練——使用UIActivityIndicator View控制項(Swift版) 259
16.2 進度條(UIProgressView) 260
16.2.1 進度條基礎 261
16.2.2 實戰演練——自定義進度條的外觀樣式 261
16.2.3 實戰演練——實現多個具有動態條紋背景的進度條 261
16.2.4 實戰演練——自定義一個指 定外觀樣式的進度條 264
16.2.5 實戰演練——實現自定義進度條效果(Swift版) 268
16.3 檢索條(UISearchBar) 269
16.3.1 檢索條基礎 269
16.3.2 實戰演練——在查找信息輸入關鍵字時實現自動提示功能 270
16.3.3 實戰演練——實現文字輸入的自動填充和自動提示功能 273
16.3.4 實戰演練——使用檢索控制項快速搜尋信息 274
16.3.5 實戰演練——使用UISearchBar控制項(Swift版) 277
16.3.6 實戰演練——在表視圖中實現信息檢索(雙語實現:Objective-C版) 278
16.3.7 實戰演練——在表視圖中實現信息檢索(雙語實現:Swift版) 281
* 17章 UIView詳解 282
17.1 UIView基礎 282
17.1.1 UIView的結構 282
17.1.2 視圖架構 284
17.1.3 視圖層次和子視圖管理 284
17.1.4 視圖繪製周期 285
17.1.5 UIView的常見套用 285
17.2 實戰演練 286
17.2.1 實戰演練—給任意UIView視圖四條框線加上陰影 286
17.2.2 實戰演練——給UIView加上各種圓角、框線效果 287
17.2.3 實戰演練——使用UIView控制項實現彈出式動畫表單效果 288
17.2.4 實戰演練——創建一個滾動圖片瀏覽器(Swift版) 289
17.2.5 實戰演練——創建一個產品展示列表(雙語實現:Objctive-C版) 290
17.2.6 實戰演練——創建一個產品展示列表(雙語實現:Swift版) 291
* 18章 視圖控制器 292
18.1 導航控制器(UIViewController)基礎 292
18.1.1 UIViewController的常用屬性和
方法 292
18.1.2 實戰演練——實現可以移動切換的視圖效果 293
18.1.3 實戰演練——實現手動旋轉螢幕的效果 293
18.2 使用UINavigationController 294
18.2.1 UINavigationController詳解 295
18.2.2 實戰演練——實現一個界面導航條功能 296
18.2.3 實戰演練——創建主從關係的
“主-子”視圖(Swift版) 299
18.2.4 實戰演練——使用導航控制器展現3個場景(雙語實現:Objective-C版) 300
18.2.5 實戰演練——使用導航控制器展現3個場景(雙語實現:
Swift版) 303
18.3 選項卡欄控制器 304
18.3.1 選項卡欄和選項卡欄項 304
18.3.2 實戰演練——使用選項卡欄控制器構建3個場景 306
18.3.3 實戰演練——使用動態單元格定製表格行 310
18.3.4 實戰演練——開發一個界面選擇控制器(Swift版) 311
* 19章 實現多場景和彈出框 313
19.1 多場景故事板 313
19.1.1 多場景故事板基礎 313
19.1.2 創建多場景項目 314
19.1.3 實戰演練——實現多個視圖之間的切換 317
19.1.4 實戰演練——使用* 二個視圖來編輯* 一個視圖中的信息(雙語實現:Objective-C版) 320
19.1.5 實戰演練——使用* 二個視圖來編輯* 一個視圖中的信息(雙語實現:Swift版) 323
* 20章 UICollectionView和UIVisualEffectView
控制項 324
20.1 UICollectionView控制項詳解 324
20.1.1 UICollectionView的構成 324
20.1.2 實現一個簡單的UICollectionView 325
20.1.3 自定義的UICollectionViewLayout 327
20.1.4 實戰演練——使用UICollectionView控制項實現格線效果 328
20.1.5 實戰演練——實現大小不相同的格線效果 331
20.1.6 實戰演練——實現不同顏色方塊的布局效果(Swift版) 333
20.2 UIVisualEffectView控制項詳解 333
20.2.1 UIVisualEffectView基礎 334
20.2.2 使用Visual Effect View控制項實現
模糊特效 335
20.2.3 使用Visual Effect View實現Vibrancy效果 336
20.2.4 實戰演練——在螢幕中實現模糊效果 337
20.2.5 實戰演練——在螢幕中實現遮罩效果 338
20.2.6 實戰演練——編碼實現指 定圖像的模糊效果(Swift版) 339
* 21章 iPad彈出框和分割視圖控制器 341
21.1 iPad彈出框控制器(UIPopoverPresentationController) 341
21.1.1 創建彈出框 341
21.1.2 創建彈出切換 341
21.1.3 實戰演練——彈出模態視圖 342
21.2 探索分割視圖控制器 343
21.2.1 分割視圖控制器基礎 343
21.2.2 實戰演練——使用表視圖(雙語實現:Objective-C版) 345
21.2.3 實戰演練——使用表視圖(雙語實現:Swift版) 349
21.2.4 實戰演練——創建基於主從關係的分割視圖(Swift版本) 350
* 22章 界面旋轉、大小和全螢幕處理 352
22.1 啟用界面旋轉 352
22.1.1 界面旋轉基礎 352
22.1.2 實戰演練——實現界面自適應(Swift版) 353
22.1.3 實戰演練——設定界面實現自適應(雙語實現:Objective-C版) 354
22.1.4 實戰演練——設定界面實現自適應(雙語實現:Swift版) 354
22.2 設計可旋轉和可調整大小的界面 355
22.2.1 自動旋轉和自動調整大小 355
22.2.2 調整框架 355
22.2.3 切換視圖 355
22.2.4 實戰演練——使用Interface Builder創建可旋轉和調整大小的界面 355
22.2.5 實戰演練——在旋轉時調整
控制項 357
22.2.6 實戰演練——旋轉時切換視圖 360
22.2.7 實戰演練——實現螢幕視圖的自動切換(Swift版) 363
* 23章 圖形、圖像、圖層和動畫 364
23.1 圖形處理 364
23.1.1 iOS的繪圖機制 364
23.1.2 實戰演練——在螢幕中繪製一個三角形 365
23.1.3 實戰演練——使用CoreGraphic實現繪圖操作 366
23.2 圖像處理 368
23.2.1 實戰演練——實現顏色選擇器/調色板功能 368
23.2.2 實戰演練——在螢幕中繪製一個圖像 369
23.3 圖層 369
23.3.1 視圖和圖層 369
23.3.2 實戰演練——實現圖片、文字以及翻轉效果 370
23.3.3 實戰演練——滑動展示不同的
圖片 371
23.3.4 實戰演練——演示CALayers圖層的用法(Swift版) 371
23.4 實現動畫 372
23.4.1 UIImageView動畫 372
23.4.2 視圖動畫UIView 372
23.4.3 Core Animation詳解 376
23.4.4 實戰演練——實現UIView分類動畫效果 376
23.4.5 實戰演練——動畫樣式顯示電量使用情況 378
23.4.6 實戰演練——圖形圖像的人臉檢測處理(Swift版) 381
23.4.7 實戰演練——聯合使用圖像動畫、滑塊和步進控制項(雙語實現:
Objective-C版) 382
23.4.8 實戰演練——聯合使用圖像動畫、滑塊和步進控制項(雙語實現:
Swift版) 390
* 24章 多媒體開發 391
24.1 使用AudioToolbox框架 391
24.1.1 聲音服務基礎 391
24.1.2 實戰演練——播放指 定的聲音
檔案 392
24.1.3 實戰演練——播放任意位置的
音頻 393
24.2 提醒和振動 393
24.2.1 播放提醒音 394
24.2.2 實戰演練——實現兩種類型的振動效果(Swift版) 394
24.2.3 實戰演練——實用iOS的提醒
功能 395
24.3 AV Foundation框架 401
24.3.1 準備工作 402
24.3.2 使用AV音頻播放器 402
24.3.3 實戰演練——使用AV Foundation框架播放視頻 402
24.3.4 實戰演練——使用AVAudioPlayer播放和暫停指 定的MP3播放(Swift版) 403
24.3.5 實戰演練——使用AVKit框架播放列表中的視頻 404
24.3.6 實戰演練——使用AVKit框架播放本地視頻 405
24.3.7 實戰演練——使用AVKit框架播放網路視頻 406
24.4 圖像選擇器(UIImagePickerController) 407
24.4.1 使用圖像選擇器 407
24.4.2 實戰演練——獲取照片庫的圖片 407
* 25章 分屏多任務 410
25.1 分屏多任務基礎 410
25.1.1 分屏多任務的開發環境 410
25.1.2 Slide Over和Split View基礎 411
25.1.3 畫中畫 412
25.2 實戰演練 413
25.2.1 實戰演練——使用SlideOver多任務(Swift版) 413
25.2.2 實戰演練——使用SplitView多任務(Swift版) 415
25.2.3 實戰演練——開發一個分割多視圖瀏覽器(Swift版) 419
* 26章 定位處理 422
26.1 iOS模擬器調試定位程式的方法 422
26.2 Core Location框架 423
26.2.1 Core Location基礎 423
26.2.2 使用流程 423
26.2.3 實戰演練——定位顯示當前的位置信息(Swift版) 425
26.3 獲取位置 428
26.3.1 位置管理器委託 429
26.3.2 獲取航向 430
26.3.3 實戰演練——定位當前的位置
信息 431
26.4 加入地圖功能 432
26.4.1 Map Kit基礎 432
26.4.2 為地圖添加標註 433
26.4.3 實戰演練——在地圖中定位當前的位置信息(Swift版) 434
26.4.4 實戰演練——在地圖中繪製導航線路 435
26.5 實戰演練——創建一個支持定位的套用
程式(雙語實現:Objective-C版) 436
26.5.1 創建項目 437
26.5.2 設計視圖 438
26.5.3 創建並連線輸出口 438
26.5.4 實現應用程式邏輯 438
26.5.5 生成應用程式 440
26.6 實戰演練——創建一個支持定位的應用程式
(雙語實現:Swift版) 440
26.7 實戰演練——實現地圖定位(雙語實現:Objective-C版) 441
26.8 實戰演練——實現地圖定位(雙語實現:Swift版) 442
* 27章 讀寫應用程式數據 443
27.1 iOS應用程式和數據存儲 443
27.2 用戶默認設定 444
27.3 設定束 444
27.3.1 設定束基礎 444
27.3.2 實戰演練——通過隱式首 選項實現一個手電筒程式(雙語實現:Objective-C版) 445
27.3.3 實戰演練——通過隱式首 選項實現一個手電筒程式(雙語實現:Swift版) 448
27.4 直接訪問檔案系統 448
27.4.1 應用程式數據的存儲位置 449
27.4.2 獲取檔案路徑 449
27.4.3 讀寫數據 450
27.4.4 讀取和寫入檔案 450
27.4.5 通過plist檔案存取檔案 452
27.4.6 保存和讀取檔案 453
27.4.7 檔案共享和檔案類型 453
27.4.8 實戰演練——實現一個用戶信息收集器(雙語實現:
Objective-C版) 454
27.4.9 實戰演練——實現一個用戶信息收集器(雙語實現:Swift版) 457
27.5 核心數據(Core Data) 458
27.5.1 Core Data基礎 458
27.5.2 實戰演練——使用CoreData 動態添加、刪除數據 459
27.6 網際網路數據 460
27.6.1 XML和JSON 460
27.6.2 實戰演練——使用JSON獲取網站
中的照片信息 463
* 28章 觸摸、手勢識別和Force Touch 466
28.1 多點觸摸和手勢識別基礎 466
28.2 觸摸處理 466
28.2.1 觸摸事件和視圖 467
28.2.2 iOS中的手勢操作 469
28.2.3 實戰演練——觸摸的方式移動
視圖 470
28.2.4 實戰演練——觸摸挪動彩色方塊(Swift版) 470
28.3 手勢處理 474
28.3.1 手勢處理基礎 474
28.3.2 實戰演練——識別手勢並移動螢幕中的方塊(Swift版) 477
28.3.3 實戰演練——實現一個手勢識別器(雙語實現:Objective-C版) 480
28.3.4 實戰演練——實現一個手勢識別器(雙語實現:Swift版) 485
28.4 全新感應功能——Force Touch(3D Touch)技術 485
28.4.1 Force Touch介紹 486
28.4.2 Force Touch APIs介紹 486
28.4.3 實戰演練——使用Force Touch 487
28.4.4 實戰演練——啟動Force Touch觸控面板 489
28.4.5 實戰演練——為應用程式添加3D Touch手勢(Swift版) 489
* 29章 和硬體之間的操作 491
29.1 加速計和陀螺儀 491
29.1.1 加速計基礎 491
29.1.2 陀螺儀 493
29.1.3 實戰演練——使用Motion感測器(Swift版) 494
29.1.4 實戰演練——檢測傾斜和旋轉(雙語實現:Objective-C版) 495
29.1.5 實戰演練——檢測傾斜和旋轉(雙語實現:Swift版) 499
29.2 訪問朝向和運動數據 500
29.2.1 兩種方法 500
29.2.2 實戰演練——檢測當前設備的朝向(雙語實現:Objective-C版) 502
29.2.3 實戰演練——檢測當前設備的朝向(雙語實現:Swift版) 503
第30章 地址簿、郵件、Twitter和短訊息 504
30.1 Contacts Framework框架 504
30.1.1 Contacts框架的主要構成類 504
30.1.2 使用Contact框架 505
30.1.3 實戰演練——使用Contacts框架獲取通信錄信息 505
30.2 Message UI電子郵件 507
30.2.1 Message UI基礎 507
30.2.2 實戰演練——使用Message UI傳送郵件(Swift版) 508
30.3 使用Twitter傳送推特信息 509
30.3.1 Twitter基礎 509
30.3.2 實戰演練——開發一個Twitter客戶端(Swift版) 509
30.4 實戰演練——聯合使用地址簿、電子郵件、Twitter和地圖(雙語實現:
Objective-C版) 511
30.4.1 創建項目 511
30.4.2 設計界面 512
30.4.3 創建並連線輸出口和操作 512
30.4.4 實現通信錄邏輯 513
30.4.5 實現地圖邏輯 513
30.4.6 實現電子郵件邏輯 514
30.4.7 實現Twitter邏輯 514
30.4.8 調試運行 514
30.5 實戰演練——聯合使用地址簿、電子郵件、Twitter和地圖(雙語實現:Swift版) 515
30.6 使用Messages.framework框架 515
30.6.1 Messages.framework框架介紹 515
30.6.2 實戰演練——調用並使用Messages.framework框架
(Swift版) 515
第31章 開發通用的項目程式 517
31.1 開發通用應用程式 517
31.1.1 在iOS 6中開發通用應用程式 517
31.1.2 在iOS 6+中開發通用應用程式 518
31.1.3 圖示檔案 524
31.1.4 啟動圖像 524
31.2 實戰演練——使用通用程式模板創建通用應用程式(雙語實現:Objective-C版) 524
31.2.1 創建項目 525
31.2.2 設計界面 525
31.2.3 創建並連線輸出口 526
31.2.4 實現應用程式邏輯 526
31.3 實戰演練——使用通用程式模板創建通用應用程式(雙語實現:Swift版) 527
31.4 實戰演練——使用視圖控制器 527
31.4.1 創建項目 527
31.4.2 設計界面 528
31.4.3 創建並連線輸出口 528
31.4.4 實現應用程式邏輯 528
31.4.5 生成應用程式 529
31.5 實戰演練——使用多個目標 529
31.5.1 將iPhone目標轉換為iPad目標 529
31.5.2 將iPad目標轉換為iPhone目標 530
31.6 實戰演練——創建基於“主—從”視圖的應用程式 530
31.6.1 創建項目 530
31.6.2 調整iPad界面 531
31.6.3 調整iPhone界面 532
31.6.4 實現應用程式數據源 533
31.6.5 實現主視圖控制器 535
31.6.6 實現細節視圖控制器 536
31.6.7 調試運行 537
第32章 推服務和多執行緒 538
32.1 推服務 538
32.1.1 推服務介紹 538
32.1.2 推服務的機制 539
32.1.3 iOS 中 PushNotificationIOS遠程推送的主要方法 539
32.1.4 在iOS中實現遠程推送通知的
步驟 540
32.1.5 實戰演練——在iOS系統中傳送3種形式的通知 543
32.2 多執行緒 545
32.2.1 多執行緒基礎 545
32.2.2 iOS中的多執行緒 547
32.2.3 執行緒的同步與鎖 551
32.2.4 執行緒的互動 552
32.3 ARC機制 553
32.3.1 ARC概述 553
32.3.2 ARC中的新規則 554
32.4 實戰演練——實現後台多執行緒處理(雙語實現:Objective-C版) 554
32.5 實戰演練——實現後台多執行緒處理(雙語實現:Swift版) 556
第33章 Touch ID詳解 557
33.1 開發Touch ID應用程式 557
33.1.1 Touch ID的官方資料 557
33.1.2 開發Touch ID應用程式的步驟 558
33.2 實戰演練——使用Touch ID認證 559
33.3 實戰演練——使用Touch ID密碼和指紋
認證 560
33.4 實戰演練——Touch ID認證的綜合
演練 564
第34章 使用CocoaPods依賴管理 567
34.1 使用CocoaPods基礎 567
34.2 安裝CocoaPods 567
34.2.1 基本安裝 567
34.2.2 快速安裝 568
34.3 使用CocoaPods 568
34.3.1 在自己的項目中使用CocoaPods 568
34.3.2 為自己的項目創建 podspec
檔案 570
34.3.3 生成第三方庫的幫助文檔 571
34.4 實戰演練——打開一個用CocoaPods
管理的開源項目 571
第35章 使用擴展(Extension) 574
35.1 擴展(Extension)基礎 574
35.1.1 擴展的生命周期 574
35.1.2 擴展和容器套用的互動 575
35.2 實戰演練——使用Photo Editing Extension(照片擴展) 575
35.3 實戰演練——使用TodayExtension(今 日提醒擴展) 581
35.4 實戰演練——使用Action Extension翻譯
英文 583
35.5 實戰演練——使用Share Extension擴展實現分享功能 586
第36章 遊戲開發 592
36.1 Sprite Kit框架基礎 592
36.1.1 Sprite Kit的優點和缺點 592
36.1.2 Sprite Kit、Cocos2D、Cocos2D-X和Unity的選擇 592
36.2 實戰演練——開發一個Sprite Kit遊戲
程式 593
36.3 實戰演練——開發一個射擊遊戲 601
第37章 watchOS 4智慧型手錶開發 607
37.1 Apple Watch介紹 607
37.2 WatchKit開發詳解 608
37.2.1 搭建WatchKit開發環境 608
37.2.2 WatchKit架構 609
37.2.3 WatchKit布局 610
37.2.4 Glances和Notifications(快速預覽信息) 610
37.2.5 Watch App的生命周期 611
37.3 開發Apple Watch應用程式 612
37.3.1 創建Watch套用 612
37.3.2 創建Glance界面 612
37.3.3 自定義通知界面 612
37.3.4 配置Xcode項目 613
37.4 實戰演練——實現AppleWatch垂直列表
界面布局 615
37.5 實戰演練——演示AppleWatch的日曆
事件 616
37.6 實戰演練——在手錶中控制小球的
移動 620
37.7 實戰演練——實現一個倒 計 時器 621
第38章 HealthKit健康套用開發 623
38.1 HealthKit基礎 623
38.1.1 HealthKit介紹 623
38.1.2 市面中的HealthKit套用現狀 623
38.1.3 接入HealthKit的好處 624
38.2 HealthKit開發基礎 624
38.2.1 HealthKit開發要求 624
38.2.2 HealthKit開發思路 625
38.3 實戰演練——讀寫HealthKit數據
信息 626
38.4 實戰演練——心率檢測(Swift版) 626
38.5 實戰演練——獲取行走的步數 629
38.6 實戰演練——獲取步數、跑步距離、體重和身高(Swift版) 630
第39章 在程式中加入Siri功能 632
39.1 Siri基礎 632
39.1.1 iOS 中的Siri 632
39.1.2 HomeKit中的Siri指令 632
39.2 在iOS應用程式中使用Siri 633
39.2.1 iOS對生態整合與Extension開發的努力 633
39.2.2 Siri功能將以Extension擴展的形式存在 633
39.2.3 創建Intents Extension 634
39.3 實戰演練——在iOS程式中使用Siri 638
39.4 實戰演練——在支付程式中使用Siri
(Swift版) 641
第40章 開發tvOS程式 645
40.1 tvOS開發基礎 645
40.1.1 tvOS系統介紹 645
40.1.2 tvOS開發方式介紹 645
40.1.3 打開遙控器的模擬器 646
40.2 使用Custom App方式 646
40.2.1 Custom App方式介紹 646
40.2.2 實戰演練——開發一個簡單的按鈕回響程式(Swift版) 646
40.2.3 實戰演練——開發一個猜謎遊戲(Swift版) 647
40.2.4 實戰演練——在tvOS中使用表視圖(Swift版) 649
40.3 使用TVML Apps方式 650
40.3.1 使用TVML Apps方式開發 651
40.3.2 實戰演練——開發一個可回響的tvOS程式(Swift版) 659
40.3.3 實戰演練——電影播放列表
(Swift版) 663
第41章 使用Apple Pay 665
41.1 Apple Pay介紹 665
41.2 Apple Pay開發基礎 665
41.2.1 Apple Pay支付流程 665
41.2.2 配置開發環境 666
41.2.3 創建支付請求 667
41.2.4 授 權支付 669
41.2.5 處理支付 671
41.3 實戰演練——Apple Pay接入應用程式 671
41.3.1 準備工作 671
41.3.2 具體實現 672
41.4 實戰演練——使用圖示接入Apple Pay 676
41.5 實戰演練——使用圖示接入Apple Pay(Swift版) 678
第42章 開發AR虛擬現實程式 681
42.1 虛擬現實和增強現實 681
42.2 使用ARKit 681
42.2.1 ARKit框架基礎 681
42.2.2 ARKit與SceneKit的關係 682
42.2.3 ARKit的工作原理 682
42.3 實戰演練——自定義實現飛機飛行場景的
AR效果 683
42.3.1 準備工作 683
42.3.2 具體實現 684
42.4 實戰演練——實現3種AR特效捕捉
功能 686
42.4.1 實現水平捕捉功能 686
42.4.2 實現飛機隨鏡頭飛行效果 688
42.4.3 實現環繞飛行效果 688
42.5 實戰演練——實現5種AR特效
(Swift版) 689
第43章 tvOS電影庫系統 695
43.1 tvOS電影庫系統介紹 695
43.2 系統介紹 695
43.3 使用Objective-C實現 697
43.4 使用Swift實現 703
43.5 系統擴展——優酷和土豆視頻 703
第44章 分屏多視圖播放器 704
44.1 分屏多視圖系統介紹 704
44.2 創建工程 704
44.3 分屏具體實現 705
44.3.1 實現主視圖界面 705
44.3.2 顯示某個視頻的基本信息 708
44.3.3 播放視頻 709
44.3.4 播放網頁嵌入式視頻 711