第1章 創建第1個iPhone應用 1
1.1 iPhone應用開發的背景 1
1.2 做好準備工作 5
1.3 下載開發工具 7
1.4 瞭解iOS運行環境 8
1.5 iOS應用開發的注意點 9
1.6 創建第1個Hello World iPhone應用 10
1.6.1 通過Xcode創建並運行iPhone項目 10
1.6.2 瞭解iPhone應用的基本運行機理 15
1.6.3 豐富你的iPhone應用 18
1.6.4 為應用添加桌麵圖標 21
1.6.5 關於iPhone 5應用的補充說明 24
1.6.6 老版本應用的兼容性問題 24
1.7 小結 24
第2章 Objective-C語言開發基礎 25
2.1 Objective-C的Hello World程序 26
2.2 創建一個Objective-C類 29
2.2.1 通過Xcode創建Person類 29
2.2.2 對Person類的解讀 32
2.2.3 類的構造方法 36
2.2.4 繼承和多態 38
2.2.5 選擇器(selector) 43
2.3 常用類介紹 45
2.3.1 NSString類 45
2.3.2 NSArray類 48
2.3.3 NSDictionary類 51
2.4 屬性(Property) 53
2.4.1 設置屬性 53
2.4.2 以Person類為例 53
2.4.3 @synthesize指令 54
2.4.4 Xcode 4.5以後版本對@synthesize指令的處理 56
2.4.5 屬性特性 56
2.5 內存管理 58
2.6 類彆(class category) 59
2.7 類擴展(class extension) 62
2.8 協議 63
2.8.1 聲明協議 63
2.8.2 使用協議 63
2.8.3 更多協議的特性 64
2.9 小結 64
第3章 設計iPhone應用——從零開始 65
3.1 MVC架構 65
3.2 基於nib文件開發單視圖交互性的應用 67
3.1.1 創建交互性應用視圖 67
3.1.2 連接視圖和視圖控製器 72
3.1.3 創建事件處理代碼 76
3.3 創建多視圖交互應用 78
3.2.1 創建空應用 79
3.2.2 添加主視圖 81
3.2.3 添加子視圖 85
3.2.4 進一步完善應用 86
3.4 小結 91
第4章 設計iPhone應用——使用故事闆 92
4.1 故事闆和Segue 92
4.2 完整的MVC應用 94
4.2.1 創建視圖框架 94
4.2.2 添加Unwind Segue 98
4.2.3 通過Unwind Segue傳遞數據 100
4.2.4 準備武俠故事模型 103
4.2.5 通過Segue傳遞數據 105
4.2.6 完善詳情視圖並運行應用 106
4.2.7 繼續完善應用——動態創建控件 110
4.2.8 創建自適應文字長度的標簽控件 112
4.3 容器視圖(Container View) 113
4.3.1 容器視圖的基本知識 113
4.3.2 容器視圖的簡單例子 114
4.3.3 實現子視圖控製器之間的互動(一) 120
4.3.4 實現子視圖控製器之間的互動(二) 122
4.4 小結 125
第5章 導航欄視圖控製器和標簽欄視圖控製器 126
5.1 導航欄視圖控製器介紹 127
5.1.1 認識導航欄視圖控製器 127
5.1.2 認識Master-Detail項目模闆 128
5.1.3 搭建導航欄視圖控製器項目 131
5.1.4 通過代碼創建導航欄視圖控製器 134
5.2 標簽欄視圖控製器介紹 135
5.2.1 認識標簽欄視圖控製器 135
5.2.2 認識Tabbed Application項目模闆 136
5.2.3 搭建標簽欄視圖控製器項目 141
5.2.4 通過代碼創建標簽欄視圖控製器 144
5.3 集成導航欄視圖控製器與標簽欄視圖控製器 145
5.4 小結 147
第6章 屬性字符串 148
6.1 通過屬性字符串格式化文本 148
6.1.1 通過屬性格式配置標簽文本 150
6.1.2 屬性文本支持的控件 151
6.2 通過代碼設置屬性字符串 151
6.2.1 瞭解NSAttributedString類 152
6.2.2 設置字間距和字體背景色 154
6.2.3 設置陰影以及下畫綫效果 155
6.2.4 為字符串不同部分設置不同效果 156
6.2.5 設置段落效果 157
6.2.6 可以設置的屬性字符串樣式列錶 160
6.3 小結 161
第7章 iOS控件
應用入門 162
7.1 iOS控件簡介 162
7.2 分段控件、文本框控件、滑塊控件 163
7.2.1 分段控件介紹 164
7.2.2 文本框控件介紹 166
7.2.3 滑塊控件介紹 169
7.2.4 創建展示項目 171
7.2.5 在輸入完成後關閉鍵盤(一) 176
7.2.6 在輸入完成後關閉鍵盤(二) 177
7.2.7 點擊視圖退齣鍵盤 179
7.3 Web視圖和活動指示器控件 180
7.3.1 Web視圖控件介紹 180
7.3.2 活動指示器控件介紹 182
7.3.3 創建展示項目 184
7.4 圖像視圖控件 189
7.4.1 圖像視圖控件介紹 190
7.4.2 創建展示項目 190
7.5 小結 193
第8章 iOS控件
應用進階 195
8.1 進度視圖、開關和計步器控件 195
8.1.1 進度視圖控件介紹 195
8.1.2 開關控件介紹 197
8.1.3 計步器控件介紹 198
8.1.4 創建展示項目 199
8.2 警告視圖、動作錶單、活動視圖控製器 202
8.2.1 警告視圖介紹 203
8.2.2 警告視圖示例 204
8.2.3 動作錶單介紹(郵件視圖控製器) 208
8.2.4 動作錶單示例 210
8.2.5 活動視圖控製器介紹 215
8.2.6 活動視圖控製器示例 216
8.3 日期選擇器(工具欄控件) 218
8.3.1 日期選擇器控件介紹 218
8.3.2 創建展示項目 219
8.4 自定義選擇器 226
8.5 自定義選擇器控件介紹 226
8.5.1 數據源協議——UIPicker-ViewDataSource 227
8.5.2 代理協議——UIPicker-ViewDelegate 228
8.5.3 創建plist文件數據源 229
8.5.4 讀取plist文件的方法 233
8.5.5 單輪選擇器示例 233
8.5.6 多輪選擇器示例 237
8.6 小結 241
第9章 應用及視圖生命周期 242
9.1 應用的生命周期 242
9.1.1 應用的不同狀態 243
9.1.2 通過代碼模擬觀察應用生命周期 245
9.1.3 應用程序的加載 247
9.1.4 響應中斷 248
9.1.5 進入後颱運行 249
9.1.6 返迴前颱運行 250
9.1.7 關於main函數 251
9.2 視圖生命周期 252
9.2.1 視圖生命周期簡介 252
9.2.2 視圖生命周期中的主要方法 253
9.2.3 loadView方法 253
9.2.4 與應用生命周期的互動 254
9.3 小結 256
第10章 iOS繪圖和自動鏇轉 257
10.1 iOS繪圖 257
10.1.1 視圖和坐標體係 258
10.1.2 圖形顔色處理 260
10.1.3 在上下文中繪製圖形 261
10.1.4 手工繪圖應用示例 264
10.2 自動鏇轉 270
10.2.1 鏇轉屏幕 271
10.2.2 使用自動尺寸處理鏇轉 273
10.2.3 通過代碼方式處理鏇轉 276
10.3 小結 280
第11章 iOS自動布局 281
11.1 通過約束處理屏幕鏇轉 282
11.1.1 約束應用示例 282
11.1.2 約束應用詳解 285
11.1.3 不同的約束類型——Pin 286
11.1.4 不同的約束類型——Align 290
11.1.5 視圖之間約束的互相作用 293
11.2 通過代碼創建約束 293
11.2.1 NSLayoutConstraint類 293
11.2.2 通過代碼創建約束:指定控件位置 295
11.2.3 為控件指定高度、寬度 297
11.2.4 處理多個控件 299
11.3 可視化格式語言 302
11.3.1 constraintsWithVisual- Format:方法 302
11.3.2 可視化格式語言的具體例子 303
11.3.3 可視化格式語言的深入 304
11.4 小結 306
第12章 手勢識彆技術 307
12.1 自定義手勢識彆 307
12.2 使用自動手勢識彆器 309
12.2.1 自動手勢識彆開發原理 309
12.2.2 離散性手勢與連續性手勢 313
12.2.3 如何在模擬器中測試手勢 315
12.2.4 識彆輕掃手勢 316
12.2.5 識彆輕擊手勢 319
12.2.6 識彆捏閤手勢 320
12.2.7 創建自定義手勢識彆器 323
12.3 小結 323
第13章 iOS高級控件 324
13.1 滾動視圖控件 324
13.1.1 使用滾動視圖示例 325
13.1.2 在滾動視圖中支持圖片放大和縮小 328
13.1.3 滾動查看多個圖片 330
13.1.4 關於滾動視圖控件的更多知識 333
13.2 頁麵指示器控件 334
13.2.1 頁麵指示器控件示例 335
13.2.2 完善代碼:允許用戶點擊頁麵指示器翻頁 339
13.3 錶格視圖 340
13.3.1 錶格樣式 341
13.3.2 單元格樣式 342
13.3.3 錶格視圖元素 344
13.3.4 數據源協議UITable- ViewDataSource 346
13.3.5 代理協議UITable- ViewDelegate 348
13.3.6 錶格視圖示例 348
13.3.7 創建自定義的錶格單元格 355
13.3.8 分段示例 364
13.3.9 索引示例 368
13.3.10 實現搜索欄 369
13.4 小結 376
第14章 Passbook 377
14.1 Passbook初覽 378
14.2 通過passsource.com創建憑證 379
14.3 憑證的工作原理 382
14.4 創建第1個憑證 383
14.4.1 找到開發者團隊標識(teamIdentifier) 383
14.4.2 創建憑證類型標識(passType-Identifier) 383
14.4.3 創建Hello World憑證 388
14.5 憑證文件包的構成 395
14.6 pass.json文件 396
14.6.1 頂級鍵的說明 397
14.6.2 次級鍵的說明 398
14.7 打摺券憑證詳解 400
14.8 登機牌憑證詳解 402
14.9 通過PassKit框架操作憑證 406
14.9.1 PassKit庫介紹 406
14.9.2 PassKit示例 407
14.10 小結 410
第15章 集閤視圖 (UICollection-View) 411
15.1 集閤視圖基礎 412
15.1.1 數據源協議(UICollectionView-DataSource) 413
15.1.2 代理協議(UICollectionView-Delegate) 414
15.1.3 創建第1個集閤視圖應用 414
15.1.4 集閤視圖布局(UICollectionView-Layout) 422
15.1.5 認識補充視圖(Supplementary View) 427
15.2 自定義集閤視圖單元格 429
15.3 小結 431
第16章 iOS多綫程編程 432
16.1 什麼是多綫程 432
16.2 iOS的多綫程知識 433
16.2.1 派遣隊列Dispatch Queue 434
16.2.2 程序塊Block 440
16.2.3 在視圖中通過GCD實現異步操作 444
16.3 異步執行代碼的其他方法 447
16.3.1 通過performSelector來異步執行 447
16.3.2 通過NSTimer來異步執行 449
16.4 後颱運行應用 449
16.5 小結 452
第17章 數據持久化 453
17.1 通過NSUserDefaults進行數據持久化 453
17.1.1 創建持久化聯係人信息應用 454
17.1.2 保存用戶輸入的數據 456
17.1.3 讀取用戶保存的數據 458
17.2 應用程序沙盒 460
17.3 通過屬性列錶持久化數據 463
17.4 歸檔對象 465
17.4.1 實現NSCoding協議 466
17.4.2 歸檔對象或取消歸檔 467
17.5 使用SQLite數據庫 469
17.5.1 操作數據庫的SQLite函數 469
17.5.2 使用SQLite 3的視圖應用 473
17.6 使用Core Data 480
17.6.1 使用Core Data 480
17.6.2 通過代碼訪問數據模型 486
17.6.3 獲得NSManaged- ObjectContext對象 489
17.6.4 如何插入、查詢、更新以及刪除數據 490
17.7 小結 493
第18章 Core Location定位和Map Kit 494
18.1 Core Location框架 494
18.1.1 位置管理器監控位置變化 496
18.1.2 位置管理器監控方嚮變化 497
18.1.3 使用位置管理器監控位置的例子 498
18.2 Map Kit 502
18.2.1 創建一個地圖應用 502
18.2.2 自定義地圖顯示位置及範圍 503
18.2.3 使用大頭針標注地理位置 506
18.2.4 瞭解和使用MKAnnotationView 509
18.3 小結 513
第19章 Core Motion動作管理器 514
19.1 動作管理器類 515
19.1.1 檢測加速計數據 517
19.1.2 檢測鏇轉數據 522
19.1.3 檢測組閤信息 523
19.2 捕獲動作事件 524
19.3 小結 524
第20章 iCloud雲服務 526
20.1 瞭解iCloud雲服務 526
20.2 雲存儲鍵/值對 529
20.3 雲存儲文檔 532
20.3.1 子類化UIDocument 532
20.3.2 如何定位Ubiquity Container 534
20.3.3 如何通過NSMetadataQuery查詢數據 535
20.3.4 文檔的生命周期 536
20.4 小結 537
· · · · · · (
收起)