內容簡介
全書共39章,循序漸進地講解了iOS 9套用開發的基本知識。本書從搭建開發環境講起,依次講解了Objective-C語言基礎,Swift語言基礎,Cocoa Touch,Xcode Interface Builder界面開發,使用Xcode編寫MVC程式,文本框和文本視圖,按鈕和標籤,滑塊、步進和圖像,開關控制項和分段控制項,Web視圖控制項、可滾動視圖控制項和翻頁控制項,提醒和操作表,工具列、日期選擇器,表視圖,活動指示器、進度條和檢索條,UIView,視圖控制器,實現多場景和彈出框,UICollectionView和UIVisualEffectView控制項,iPad彈出框和分割視圖控制器,界面旋轉、大小和全螢幕處理,圖形,圖像,圖層和動畫,聲音服務,多媒體套用,定位處理,讀寫應用程式數據,觸摸,手勢識別和Force Touch,HomeKit智慧型家居套用開發,和硬體之間的操作,開發通用的項目程式,推服務和多執行緒,Touch ID,遊戲開發,HealthKit健康套用開發,WatchKit智慧型手錶開發等高 級知識。本書內容全面,幾乎涵蓋了iOS 9套用開發所需要的主要內容,全書內容言簡意賅,講解方法通俗易懂,特別適合於初學者學習。
本書適合iOS初學者、iOS程式設計師、iPhone開發人員、iPad開發人員學習,也可以作為相關培訓學校和大專院校相關專業的教學用書。
圖書目錄
第 一篇 必 備技術篇
第 1章 IOS開發入門 2
1.1 iOS系統介紹 2
1.1.1 iOS發展史 2
1.1.2 全新的版本——iOS 9 3
1.2 開始iOS 9開發之旅 4
1.3 工欲善其事,必先利其器——搭建開發環境 5
1.3.1 Xcode 介紹 6
1.3.2 下載並安裝Xcode 7 6
1.3.3 創建iOS 9項目並啟動模擬器 8
1.3.4 打開一個現有的iOS 9項目 10
1.4 iOS 9中的常用開發框架 10
1.4.1 Foundation框架簡介 11
1.4.2 Cocoa框架簡介 12
1.4.3 iOS程式框架 13
第 2章 使用Xcode開發環境詳解 14
2.1 基本面板介紹 14
2.1.1 調試工具列 15
2.1.2 導航面板介紹 15
2.1.3 檢查器面板 18
2.2 Xcode 7的基本操作 19
2.2.1 改變公司名稱 19
2.2.2 通過搜尋框縮小檔案範圍 19
2.2.3 格式化代碼 20
2.2.4 代碼縮進和自動完成 20
2.2.5 檔案內查找和替代 21
2.2.6 快速定位到代碼行 22
2.2.7 快速打開檔案 22
2.2.8 使用書籤 23
2.2.9 自定義導航條 24
2.2.10 使用Xcode幫助 24
2.2.11 調試代碼 25
2.3 使用Xcode 7幫助系統 26
第3章 Objective-C語言基礎 27
3.1 **耀眼的新星 27
3.1.1 看一份統計數據 27
3.1.2 何為Objective-C 27
3.1.3 為什麼選擇Objective-C 28
3.2 Objective-C的優點及缺點 28
3.3 一個簡單的例子 29
3.3.1 使用Xcode編輯代碼 29
3.3.2 基本元素介紹 31
3.4 數據類型和常量 34
3.4.1 int類型 35
3.4.2 float類型 36
3.4.3 double類型 36
3.4.4 char類型 37
3.4.5 字元常量 38
3.4.6 id類型 39
3.4.7 限定詞 40
3.4.8 總結基本數據類型 41
3.5 字元串 42
3.6 算數表達式 42
3.6.1 運算符的優先權 43
3.6.2 整數運算和一元負號運算符 44
3.6.3 模運算符 45
3.6.4 整型值和浮點值的相互轉換 46
3.6.5 類型轉換運算符 46
3.7 表達式 47
3.7.1 常量表達式 47
3.7.2 條件運算符 47
3.7.3 sizeof運算符 48
3.7.4 關係運算符 49
3.7.5 強制類型轉換運算符 49
3.8 位運算符 50
3.8.1 按位與運算符 50
3.8.2 按位或運算符 50
3.8.3 按位異或運算符 51
3.8.4 一次求反運算符 51
3.8.5 向左移位運算符 52
3.8.6 向右移位運算符 52
3.8.7 總結Objective-C的運算符 53
第4章 Swift語言基礎 55
4.1 Swift概述 55
4.1.1 Swift的創造者 55
4.1.2 Swift的優勢 56
4.2 數據類型和常量 57
4.2.1 int類型 57
4.2.2 float類型 57
4.2.3 double類型 58
4.2.4 char類型 58
4.2.5 字元常量 58
4.3 變數和常量 58
4.3.1 常量詳解 58
4.3.2 變數詳解 59
4.4 字元串和字元 60
4.4.1 字元串字面量 60
4.4.2 初始化空字元串 60
4.4.3 字元串可變性 61
4.4.4 值類型字元串 61
4.4.5 計算字元數量 61
4.4.6 連線字元串和字元 62
4.4.7 字元串插值 62
4.4.8 比較字元串 63
4.4.9 Unicode 63
4.5 流程控制 65
4.5.1 for循環(1) 66
4.5.2 for循環(2) 67
4.5.3 while循環 67
4.6 條件語句 68
4.6.1 if語句 68
4.6.2 switch語句 69
4.7 函式 70
4.7.1 函式的聲明與調用 70
4.7.2 函式的參數和返回值 71
4.8 實戰演練——使用Xcode創建Swift程式 72
第5章 Cocoa Touch框架 74
5.1 Cocoa Touch基礎 74
5.1.1 Cocoa Touch概述 74
5.1.2 Cocoa Touch中的框架 75
5.1.3 Cocoa Touch的優勢 75
5.2 iPhone的技術層 76
5.2.1 Cocoa Touch層 76
5.2.2 多媒體層 80
5.2.3 核心服務層 80
5.2.4 核心OS層 81
5.3 Cocoa Touch中的框架 82
5.3.1 Core Animation(圖形處理)框架 82
5.3.2 Core Audio(音頻處理)框架 82
5.3.3 Core Data(數據處理)框架 83
5.4 Cocoa中的類 84
5.4.1 核心類 84
5.4.2 數據類型類 86
5.4.3 UI界面類 87
5.5 國際化 88
5.6 使用Xcode學習iOS框架 89
5.6.1 使用Xcode文檔 89
5.6.2 快速幫助 90
第6章 Xcode Interface Builder界面開發 92
6.1 Interface Builder基礎 92
6.2 和Interface Builder密切相關的庫面板 94
6.3 Interface Builder採用的方法 95
6.4 Interface Builder中的故事板——Storyboarding 95
6.4.1 推出的背景 95
6.4.2 故事板的文檔大綱 96
6.4.3 文檔大綱的區域對象 98
6.5 創建一個界面 98
6.5.1 對象庫 98
6.5.2 將對象加入到視圖中 99
6.5.3 使用IB布局工具 100
6.6 定製界面外觀 103
6.6.1 使用屬性檢查器 103
6.6.2 設定輔助功能屬性 103
6.6.3 測試界面 104
6.7 iOS 9控制項的屬性 105
6.8 實戰演練——將設計界面連線到代碼 105
6.8.1 打開項目 105
6.8.2 輸出口和操作 106
6.8.3 創建到輸出口的連線 106
6.8.4 創建到操作的連線 108
6.9 實戰演練——純代碼實現UI設計 109
第7章 使用Xcode編寫MVC程式 112
7.1 MVC模式基礎 112
7.1.1 分析結構 112
7.1.2 MVC的特點 113
7.2 Xcode中的MVC 113
7.2.1 原理 113
7.2.2 模板就是給予MVC的 114
7.3 在Xcode中實現MVC 114
7.3.1 視圖 115
7.3.2 視圖控制器 115
7.4 數據模型 116
7.5 實戰演練——使用模板Single View Application 117
7.5.1 創建項目 117
7.5.2 規劃變數和連線 120
7.5.3 設計界面 122
7.5.4 創建並連線輸出口和操作 123
7.5.5 實現應用程式邏輯 126
7.5.6 生成應用程式 127
7.6 實戰演練——創建一個MVC程式(Swift版) 127
第 二篇 核心技術篇
第8章 文本框和文本視圖 132
8.1 文本框(UITextField) 132
8.1.1 文本框基礎 132
8.1.2 實戰演練——控制是否顯示TextField中信息 132
8.1.3 實戰演練——對輸入內容的長度進行驗證 134
8.1.4 實戰演練——實現用戶登錄框界面 135
8.1.5 實戰演練——實現一個UITextField控制項(Swift版) 136
8.2 文本視圖(UITextView) 137
8.2.1 文本視圖基礎 137
8.2.2 實戰演練——拖動輸入的文本 138
8.2.3 實戰演練——自定義設定文字的行間距 139
8.2.4 實戰演練——自定義 UITextView 控制項的樣式 140
8.2.5 實戰演練——在指定的區域中輸入文本(Swift版) 143
第9章 按鈕和標籤 145
9.1 標籤(UILabel) 145
9.1.1 標籤(UILabel)的屬性 145
9.1.2 實戰演練——使用UILabel顯示一段文本 145
9.1.3 實戰演練——為文字分別添加上劃線、下劃線和中劃線 147
9.1.4 實戰演練——顯示被觸摸單詞的字母 148
9.1.5 實戰演練——顯示一個指定樣式的文本(Swift版) 150
9.2 按鈕(UIButton) 151
9.2.1 按鈕基礎 151
9.2.2 實戰演練——自定義設定按鈕的圖案 152
9.2.3 實戰演練——實現了一個變換形狀動畫按鈕 154
9.3 實戰演練——聯合使用文本框、文本視圖和按鈕 155
9.3.1 創建項目 155
9.3.2 設計界面 156
9.3.3 創建並連線輸出口和操作 161
9.3.4 實現按鈕模板 162
9.3.5 隱藏鍵盤 164
9.3.6 實現應用程式邏輯 165
9.3.7 總結執行 166
9.4 實戰演練——自定義一個按鈕(Swift版) 168
第 10章 滑塊、步進和圖像 170
10.1 滑塊控制項(UISlider) 170
10.1.1 使用Slider 控制項的基本方法 170
10.1.2 實戰演練——使用素材圖片實現滑動條特效 171
10.1.3 實戰演練——實現自動顯示刻度的滑動條 172
10.1.4 實戰演練——實現各種各樣的滑塊 174
10.1.5 實戰演練——自定義實現UISlider控制項功能(Swift版) 177
10.2 步進控制項(UIStepper) 178
10.2.1 步進控制項介紹 178
10.2.2 實戰演練——自定義步進控制項的樣式 179
10.2.3 實戰演練——設定指定樣式的步進控制項 181
10.2.4 實戰演練——使用步進控制項自動增減數字(Swift版) 185
10.3 圖像視圖控制項(UIImageView) 186
10.3.1 UIImageView的常用操作 186
10.3.2 實戰演練——實現圖像的模糊效果 187
10.3.3 實戰演練——滾動瀏覽圖片 190
10.3.4 實戰演練——實現一個圖片瀏覽器 191
10.3.5 實戰演練——使用UIImageView控制項(Swift版) 193
第 11章 開關控制項和分段控制項 195
11.1 開關控制項(UISwitch) 195
11.1.1 開關控制項基礎 195
11.1.2 實戰演練——改變UISwitch的文本和顏色 195
11.1.3 實戰演練——顯示具有開關狀態的開關 197
11.1.4 實戰演練——聯合使用UISlider與UISwitch控制項 198
11.1.5 實戰演練——控制是否顯示密碼明文(Swift版) 199
11.2 分段控制項(UISegmentedControl) 200
11.2.1 分段控制項的屬性和方法 201
11.2.2 實戰演練——使用 UISegmentedControl控制項 202
11.2.3 實戰演練——添加圖示和文本 203
11.2.4 實戰演練——使用分段控制項控制背景顏色 204
11.2.5 實戰演練——使用UISegmentedControl控制項(Swift版) 205
第 12章 Web視圖控制項、可滾動視圖控制項和翻頁控制項 206
12.1 Web視圖(UIWebView) 206
12.1.1 Web視圖基礎 206
12.1.2 實戰演練——在UIWebView控制項中調用JavaScript 腳本 207
12.1.3 實戰演練——使用滑動條動態改變字型的大小 208
12.1.4 實戰演練——實現一個迷你瀏覽器工具 209
12.1.5 實戰演練——使用UIWebView控制項載入網頁(Swift版) 211
12.2 可滾動的視圖(UIScrollView) 212
12.2.1 UIScrollView的基本用法 213
12.2.2 實戰演練——使用可滾動視圖控制項 213
12.2.3 實戰演練——滑動隱藏狀態欄 216
12.2.4 實戰演練——使用UIScrollView控制項(Swift版) 217
12.3 實戰演練——聯合使用開關、分段控制項和Web視圖控制項 218
12.3.1 創建項目 219
12.3.2 設計界面 219
12.3.3 創建並連線輸出口和操作 221
12.3.4 實現應用程式邏輯 223
12.3.5 調試運行 225
12.4 翻頁控制項(UIPageControl) 225
12.4.1 PageControll控制項基礎 225
12.4.2 實戰演練——自定義 UIPageControl 控制項的的外觀樣式 226
12.4.3 實戰演練——實現一個圖片播放器 228
12.4.4 實戰演練——實現一個圖片瀏覽程式 230
12.4.5 實戰演練——使用UIPageControl控制項設定4個界面(Swift版) 230
第 13章 提醒和操作表 232
13.1 提醒視圖(UIAlertView) 232
13.1.1 UIAlertView基礎 232
13.1.2 實戰演練——實現一個自定義提醒對話框 235
13.1.3 實戰演練——實現振動提醒框效果 236
13.1.4 實戰演練——自定義UIAlertView控制項的外觀 239
13.1.5 實戰演練——使用UIAlertView控制項(Swift版) 242
13.2 操作表(UIActionSheet) 243
13.2.1 操作表的基本用法 243
13.2.2 實戰演練——實現特殊樣式效果的UIActionSheet 244
13.2.3 實戰演練——實現Reeder閱讀器效果 248
13.2.4 實戰演練——使用UIActionSheet控制項定製一個按鈕面板 251
13.2.5 實戰演練——使用UIActionsheet實現一個分享App(Swift版) 251
第 14章 工具列、日期選擇器 254
14.1 工具列(UIToolbar) 254
14.1.1 工具列基礎 254
14.1.2 實戰演練——聯合使用UIToolBar和UIView 255
14.1.3 實戰演練——自定義UIToolBar控制項的顏色和樣式 256
14.1.4 實戰演練——創建一個帶有圖示按鈕的工具列 261
14.1.5 使用UIToolbar製作一個網頁瀏覽器(Swift版) 262
14.2 選擇器視圖(UIPickerView) 264
14.2.1 選擇器視圖基礎 264
14.2.2 實戰演練——實現兩個UIPickerView控制項間的數據依賴 266
14.2.3 實戰演練——自定義一個選擇器 268
14.2.4 實戰演練——實現一個單列選擇器 275
14.2.5 實戰演練——實現一個會發音的倒計 時器(Swift版) 276
14.3 日期選擇控制項(UIDatePicker) 278
14.3.1 UIDatePicker基礎 278
14.3.2 實戰演練——實現一個日期選擇器 280
14.3.3 實戰演練——使用日期選擇器自動選擇一個時間 286
14.3.4 實戰演練——使用UIDatePicker控制項(Swift版) 287
第 15章 表視圖 290
15.1 表視圖基礎 290
15.1.1 表視圖的外觀 290
15.1.2 表單元格 290
15.1.3 添加表視圖 290
15.1.4 UITableView詳解 294
15.2 實戰演練 296
15.2.1 實戰演練——拆分表視圖 296
15.2.2 實戰演練——自定義UITableViewCell 298
15.2.3 實戰演練——實現一個圖文樣式聯繫人列表效果 302
15.2.4 實戰演練——在表視圖中動態操作單元格(Swift版) 304
第 16章 活動指示器、進度條和檢索條 306
16.1 活動指示器(UIActivityIndicatorView) 306
16.1.1 活動指示器基礎 306
16.1.2 實戰演練——自定義UIActivityIndicatorView控制項的樣式 306
16.1.3 實戰演練——自定義活動指示器的顯示樣式 309
16.1.4 實戰演練——實現不同外觀的活動指示器效果 312
16.1.5 實戰演練——使用UIActivityIndicatorView控制項(Swift版) 313
16.2 進度條(UIProgressView) 314
16.2.1 進度條基礎 314
16.2.2 實戰演練——自定義進度條的外觀樣式 314
16.2.3 實戰演練——實現多個具有動態條紋背景的進度條 315
16.2.4 實戰演練——自定義一個指定外觀樣式的進度條 317
16.2.5 實戰演練——實現自定義進度條效果(Swift版) 321
16.3 檢索條(UISearchBar) 322
16.3.1 檢索條基礎 322
16.3.2 實戰演練——在查找信息輸入關鍵字時實現自動提示功能 323
16.3.3 實戰演練——實現文字輸入的自動填充和自動提示功能 326
16.3.4 實戰演練——使用檢索控制項快速搜尋信息 329
16.3.5 使用UISearchBar控制項 331
第 17章 UIView詳解 333
17.1 UIView基礎 333
17.1.1 UIView的結構 333
17.1.2 視圖架構 335
17.1.3 視圖層次和子視圖管理 335
17.2 實戰演練——給任意UIView視圖四條框線加上陰影 336
17.3 實戰演練——給UIView加上各種圓角、框線效果 338
17.4 實戰演練——使用UIView控制項實現彈出式動畫表單效果 343
17.5 實戰演練——創建一個滾動圖片瀏覽器(Swift版) 344
第 18章 視圖控制器 349
18.1 導航控制器(UIViewController)簡介 349
18.1.1 UIViewController基礎 349
18.1.2 實戰演練——實現可以移動切換的視圖效果 350
18.1.3 實戰演練——實現手動旋轉螢幕的效果 353
18.1.4 實戰演練——實現會員登錄系統(Swift版) 354
18.2 使用UINavigationController 355
18.2.1 UINavigationController詳解 356
18.2.2 實戰演練——使用導航控制器展現3個場景 358
18.2.3 實戰演練——實現一個界面導航條功能 362
18.2.4 實戰演練——創建主從關係的“主-子”視圖(Swift版) 364
18.3 選項卡欄控制器 365
18.3.1 選項卡欄和選項卡欄項 366
18.3.2 實戰演練——使用選項卡欄控制器構建3個場景 368
18.3.3 實戰演練——使用動態單元格定製表格行 372
18.3.4 開發一個界面選擇控制器(Swift版) 373
第三篇 技術進階篇
第 19章 實現多場景和彈出框 376
19.1 多場景故事板 376
19.1.1 多場景故事板基礎 376
19.1.2 創建多場景項目 377
19.1.3 實戰演練——使用第 二個視圖來編輯第 一個視圖中的信息 380
19.1.4 實戰演練——實現多個視圖之間的切換 384
19.2 實戰演練——多場景視圖數據傳輸(Swift版) 388
第 20章 UICollectionView和UIVisual EffectView控制項 391
20.1 UICollectionView控制項詳解 391
20.1.1 UICollectionView的構成 391
20.1.2 實現一個簡單的UICollectionView 392
20.1.3 自定義的UICollectionViewLayout 394
20.1.4 實戰演練——使用UICollectionView控制項實現格線效果 395
20.1.5 實戰演練——實現大小不相同的格線效果 398
20.1.6 實戰演練——實現Pinterest樣式的布局效果(Swift版) 400
20.2 UIVisualEffectView控制項詳解 402
20.2.1 UIVisualEffectView基礎 402
20.2.2 使用VisualEffectView控制項實現模糊特效 404
20.2.3 使用Visual Effect View實現Vibrancy效果 404
20.2.4 實戰演練——在螢幕中實現了模糊效果 406
20.2.5 實戰演練——在螢幕中實現了模糊效果 407
20.2.6 實戰演練——編碼實現指定圖像的模糊效果(Swift版) 409
第 21章 iPad彈出框和分割視圖控制器 411
21.1 iPad彈出框 411
21.1.1 創建彈出框 411
21.1.2 創建彈出切換 411
21.1.3 手工顯示彈出框 413
21.1.4 回響用戶關閉彈出框 413
21.1.5 以編程方式創建並顯示彈出框 414
21.1.6 實戰演練——使用彈出框更新內容 416
21.2 探索分割視圖控制器 418
21.2.1 分割視圖控制器基礎 418
21.2.2 表視圖實戰演練 420
第 22章 界面旋轉、大小和全螢幕處理 425
22.1 啟用界面旋轉 425
22.1.1 界面旋轉基礎 425
22.1.2 實戰演練——實現界面自適應(Swift版) 426
22.2 設計可旋轉和調整大小的界面 427
22.2.1 自動旋轉和自動調整大小 427
22.2.2 調整框架 427
22.2.3 切換視圖 427
22.2.4 實戰演練——使用Interface Builder創建可旋轉和調整大小的界面 427
22.2.5 實戰演練——在旋轉時調整控制項 430
22.2.6 實戰演練——旋轉時切換視圖 433
22.2.7 實戰演練——實現螢幕視圖的自動切換(Swift版) 436
第 23章 圖形、圖像、圖層和動畫 437
23.1 圖形處理 437
23.1.1 iOS的繪圖機制 437
23.1.2 實戰演練——在螢幕中繪製一個三角形 438
23.1.3 實戰演練——使用CoreGraphic實現繪圖操作 439
23.1.4 使用Quartz 2D繪製移動的曲線(Swift版) 442
23.2 圖像處理 443
23.2.1 實戰演練——實現顏色選擇器/調色板功能 443
23.2.2 實戰演練——在螢幕中繪製一個圖像 444
23.3 圖層 446
23.3.1 視圖和圖層 446
23.3.2 實戰演練——實現圖片、文字以及翻轉效果 447
23.3.3 實戰演練——滑動展示不同的圖片 448
23.3.4 實戰演練——演示CALayers圖層的用法(Swift版) 449
23.4 實現動畫 450
23.4.1 UIImageView動畫 450
23.4.2 視圖動畫UIView 450
23.4.3 Core Animation詳解 454
23.4.4 實戰演練——使用圖像動畫 455
23.4.5 實戰演練——實現UIView分類動畫效果 463
23.4.6 實戰演練——動畫樣式顯示電量使用情況 465
23.4.7 實戰演練——圖形圖像的人臉檢測處理(Swift版) 468
第 24章 聲音服務 472
24.1 訪問聲音服務 472
24.1.1 聲音服務基礎 472
24.1.2 實戰演練——播放聲音檔案 473
24.1.3 實戰演練——使用AudioToolbox播放列表中的音樂(Swift版) 476
24.2 提醒和振動 479
24.2.1 播放提醒音 480
24.2.2 實戰演練——實用iOS的提醒功能 480
24.2.3 實戰演練——實現兩種類型的振動效果(Swift版) 488
第 25章 多媒體套用 490
25.1 Media Player框架 490
25.1.1 Media Player框架中的類 490
25.1.2 實戰演練——使用Media Player播放視頻 491
25.1.3 實戰演練——邊下載邊播放視頻 493
25.1.4 實戰演練——播放指定的視頻(Swift版) 495
25.2 AV Foundation框架 497
25.2.1 準備工作 497
25.2.2 使用AV音頻播放器 497
25.2.3 實戰演練——使用AV Foundation框架播放視頻 498
25.2.4 實戰演練——使用AVAudioPlayer播放和暫停指定的MP3(Swift版) 501
25.3 圖像選擇器(UIImagePickerController) 501
25.3.1 使用圖像選擇器 501
25.3.2 實戰演練——獲取圖片並縮放 502
25.3.3 實戰演練——通過彈出式選單選擇相機中的照片(Swift版) 506
25.4 實戰演練——實現一個多媒體的應用程式 507
25.4.1 實現概述 507
25.4.2 創建項目 508
25.4.3 設計界面 509
25.4.4 創建並連線輸出口和操作 509
25.4.5 實現電影播放器 510
25.4.6 實現音頻錄製和播放 511
25.4.7 使用照片庫和相機 514
25.4.8 實現Core Image濾鏡 515
25.4.9 訪問並播放音樂庫 516
第 26章 定位處理 520
26.1 Core Location框架 520
26.1.1 Core Location基礎 520
26.1.2 使用流程 520
26.1.3 實戰演練——定位顯示當前的位置信息(Swift版) 523
26.2 獲取位置 526
26.2.1 位置管理器委託 526
26.2.2 獲取航向 527
26.3 地圖功能 528
26.3.1 Map Kit基礎 528
26.3.2 為地圖添加標註 529
26.3.3 實戰演練——在地圖中定位當前的位置信息(Swift版) 530
26.4 實戰演練——創建一個支持定位的應用程式 531
26.4.1 創建項目 531
26.4.2 設計視圖 532
26.4.3 創建並連線輸出口 533
26.4.4 實現應用程式邏輯 533
26.4.5 生成應用程式 535
26.5 實戰演練——定位當前的位置信息 535
26.6 實戰演練——在地圖中繪製導航線路 538
第 27章 讀寫應用程式數據 541
27.1 iOS應用程式和數據存儲 541
27.2 用戶默認設定 542
27.3 設定束 542
27.3.1 設定束基礎 543
27.3.2 實戰演練——通過隱式首 選項實現一個手電筒程式 544
27.4 直接訪問檔案系統 547
27.4.1 應用程式數據的存儲位置 547
27.4.2 獲取檔案路徑 548
27.4.3 讀寫數據 548
27.4.4 讀取和寫入檔案 549
27.4.5 通過plist檔案存取檔案 550
27.4.6 保存和讀取檔案 552
27.4.7 檔案共享和檔案類型 552
27.4.8 實戰演練——實現一個用戶信息收集器 553
27.5 iCloud存儲 557
27.6 使用SQLite3存儲和讀取數據 557
27.7 核心數據 561
27.7.1 Core Data基礎 561
27.7.2 實戰演練——使用CoreData 動態添加、刪除數據 562
27.8 網際網路數據 567
27.8.1 XML和JSON 567
27.8.2 實戰演練——使用JSON獲取網站中的照片信息 570
第四篇 技術提高篇
第 28章 觸摸、手勢識別和Force Touch 574
28.1 多點觸摸和手勢識別基礎 574
28.2 觸摸處理 575
28.2.1 觸摸事件和視圖 575
28.2.2 iOS中的手勢操作 577
28.2.3 實戰演練——觸摸的方式移動視圖 578
28.2.4 實戰演練——觸摸挪動彩色方塊(Swift版) 578
28.3 手勢處理 582
28.3.1 手勢處理基礎 582
28.3.2 實戰演練——實現一個手勢識別器 586
28.3.3 實戰演練——識別手勢並移動螢幕中的方塊(Swift版) 591
28.4 Force Touch技術 594
28.4.1 Force Touch介紹 595
28.4.2 Force Touch APIs介紹 595
28.4.3 實戰演練——使用Force Touch 596
28.4.4 實戰演練——啟動Force Touch觸控面板 598
第 29章 和硬體之間的操作 600
29.1 加速計和陀螺儀 600
29.1.1 加速計基礎 600
29.1.2 陀螺儀 604
29.1.3 實戰演練——檢測傾斜和旋轉 604
29.1.4 實戰演練——使用Motion感測器(Swift版) 608
29.2 訪問朝向和運動數據 609
29.2.1 兩種方法 610
29.2.2 實戰演練——檢測當前設備的朝向 611
29.3 實戰演練——感測器綜合練習(Swift版) 613
第30章 地址簿、郵件和Twitter 622
30.1 地址簿 622
30.1.1 框架Address Book UI 622
30.1.2 框架Address Book 623
30.2 Message UI電子郵件 624
30.2.1 Message UI基礎 624
30.2.2 實戰演練——使用Message UI傳送郵件(Swift版) 625
30.3 使用Twitter傳送推特信息 626
30.3.1 Twitter基礎 626
30.3.2 實戰演練——開發一個Twitter客戶端(Swift版) 626
30.4 實戰演練——聯合使用地址簿、電子郵件、Twitter和地圖 629
30.4.1 創建項目 630
30.4.2 設計界面 630
30.4.3 創建並連線輸出口和操作 631
30.4.4 實現地址簿邏輯 631
30.4.5 實現地圖邏輯 633
30.4.6 實現電子郵件邏輯 635
30.4.7 實現Twitter邏輯 636
30.4.8 調試運行 636
第31章 開發通用的項目程式 637
31.1 開發通用應用程式 637
31.1.1 在iOS 6中開發通用應用程式 637
31.1.2 在iOS 6+中開發通用應用程式 638
31.1.3 圖示檔案 645
31.1.4 啟動圖像 646
31.2 實戰演練——使用通用程式模板創建通用應用程式 646
31.2.1 創建項目 646
31.2.2 設計界面 646
31.2.3 創建並連線輸出口 647
31.2.4 實現應用程式邏輯 647
31.3 實戰演練——使用視圖控制器 648
31.3.1 創建項目 648
31.3.2 設計界面 649
31.3.3 創建並連線輸出口 650
31.3.4 實現應用程式邏輯 650
31.3.5 生成應用程式 650
31.4 實戰演練——使用多個目標 651
31.4.1 將iPhone目標轉換為iPad目標 651
31.4.2 將iPad目標轉換為iPhone目標 651
31.5 實戰演練——創建基於“主—從”視圖的應用程式 652
31.5.1 創建項目 652
31.5.2 調整iPad界面 653
31.5.3 調整iPhone界面 654
31.5.4 實現應用程式數據源 655
31.5.5 實現主視圖控制器 657
31.5.6 實現細節視圖控制器 658
31.5.7 調試運行 659
第32章 推服務和多執行緒 660
32.1 推服務 660
32.1.1 推服務介紹 660
32.1.2 推服務的機制 661
32.2 多執行緒 661
32.2.1 多執行緒基礎 661
32.2.2 iOS中的多執行緒 663
32.2.3 執行緒的同步與鎖 667
32.2.4 執行緒的互動 668
32.3 ARC機制 669
32.3.1 ARC概述 669
32.3.2 ARC中的新規則 670
第33章 Touch ID詳解 671
33.1 開發Touch ID應用程式 671
33.1.1 Touch ID的官方資料 671
33.1.2 開發Touch ID應用程式的步驟 672
33.2 實戰演練——使用Touch ID認證 673
33.3 實戰演練——使用Touch ID密碼和指紋認證 674
33.4 實戰演練——Touch ID認證的綜合演練 678
第34章 遊戲開發 684
34.1 Sprite Kit框架基礎 684
34.1.1 Sprite Kit的優點和缺點 684
34.1.2 Sprite Kit、Cocos2D、Cocos2D-X和Unity的選擇 684
34.2 實戰演練——開發一個Sprite Kit遊戲程式 685
34.3 實戰演練——開發一個四子棋遊戲(Swift版) 693
第35章 watchOS 2智慧型手錶開發 704
35.1 Apple Watch介紹 704
35.2 WatchKit開發詳解 705
35.2.1 搭建WatchKit開發環境 706
35.2.2 WatchKit架構 706
35.2.3 WatchKit布局 708
35.2.4 Glances和Notifications 708
35.2.5 Watch App的生命周期 708
35.3 開發Apple Watch應用程式 709
35.3.1 創建Watch套用 710
35.3.2 創建Glance界面 710
35.3.3 自定義通知界面 710
35.3.4 配置Xcode項目 710
35.4 實戰演練——實現AppleWatch界面布局 713
35.5 實戰演練——演示AppleWatch的日曆事件 715
35.6 實戰演練——在手錶中控制小球的移動 719
35.7 實戰演練——實現一個Watch錄音程式 720
第36章 HomeKit智慧型家居套用開發 730
36.1 HomeKit基礎 730
36.1.1 蘋果HomeKit如何牽動全國智慧型硬體格局 730
36.1.2 給開發 者和廠家提供的巨大機會 731
36.1.3 蘋果正式推出HomeKit硬體標準 731
36.2 HomeKit開發基礎 732
36.2.1 HomeKit應用程式的層次模型 732
36.2.2 HomeKit程式架構模式 733
36.2.3 HomeKit中的類 734
36.3 實戰演練——實現一個HomeKit控制程式 735
36.4 實戰演練——WatchKit+HomeKit實現一個智慧型家居控制程式(Swift版) 739
第37章 HealthKit健康套用開發 748
37.1 HealthKit基礎 748
37.1.1 Healthkit介紹 748
37.1.2 市面中的Healthkit套用現狀 748
37.1.3 接入Healthkit的好處 749
37.2 HealthKit開發基礎 750
37.2.1 開發要求 750
37.2.2 HealthKit開發思路 750
37.3 實戰演練——檢測一 天消耗掉的能量 751
37.4 實戰演練——心率檢測(Swift版) 760
第五篇 綜合實戰篇
第38章 分析開源中國客戶端 764
38.1 系統介紹 764
38.2 系統主界面 765
38.3 多執行緒處理 767
第39章 綜合性智慧型手錶管理系統(Swift版) 771
39.1 系統介紹 771
39.2 創建工程項目 771
39.3 iPhone端的具體實現 772
39.4 Watch端的具體實現 774
39.4.1 主界面視圖 774
39.4.2 各個子界面視圖的具體實現 776