第1 章 歡迎來到iPhone 世界 1
1.1 關於本書 1
1.2 必要條件 1
1.2.1 開發者的選擇 3
1.2.2 必備知識 4
1.3 編寫iOS 應用程序有何不同 4
1.3.1 隻有一個應用程序正在運行 5
1.3.2 隻有一個窗口 5
1.3.3 受限訪問 5
1.3.4 有限的響應時間 5
1.3.5 有限的屏幕大小 5
1.3.6 有限的係統資源 6
1.3.7 不支持垃圾收集 6
1.3.8 新功能 6
1.3.9 與眾不同的方法 7
1.4 本書內容 7
1.5 本次更新的內容 8
1.6 準備開始吧 8
第2 章 創建基本項目 9
2.1 在Xcode 中設置項目 9
2.2 Interface Builder 簡介 14
2.2.1 nib 文件的構成 15
2.2.2 在視圖中添加標簽 16
2.2.3 改變屬性 18
2.3 美化iPhone 應用程序 19
2.4 小結 22
第3 章 處理基本交互 23
3.1 MVC 範型 23
3.2 創建項目 24
3.3 創建視圖控製器 24
3.3.1 輸齣口 25
3.3.2 操作 26
3.3.3 將操作和輸齣口添加到視圖控製器 27
3.3.4 將操作和輸齣口添加到實現文件 30
3.4 使用應用程序委托 34
3.5 編輯MainWindow.xib 36
3.6 編輯Button_FunViewController.xib 37
3.6.1 在Interface Builder 中創建視圖 37
3.6.2 連接所有元素 40
3.6.3 測試 43
3.7 小結 43
第4 章 更豐富的用戶界麵 44
4.1 滿是控件的屏幕 44
4.2 活動和被動控件 46
4.3 創建應用程序 46
4.4 實現圖像視圖和文本字段 47
4.4.1 確定輸齣口 47
4.4.2 確定操作 48
4.4.3 添加圖像視圖 49
4.4.4 添加文本字段 52
4.4.5 設置第二個文本字段的屬性 55
4.4.6 連接輸齣口 55
4.5 關閉鍵盤 55
4.5.1 完成輸入後關閉鍵盤 56
4.5.2 通過觸摸背景關閉鍵盤 57
4.6 實現滑塊和標簽 59
4.6.1 確定輸齣口和操作 59
4.6.2 添加輸齣口和操作 60
4.6.3 添加滑塊和標簽 61
4.6.4 連接操作和輸齣口 62
4.7 實現開關、按鈕和分段控件 62
4.7.1 添加輸齣口和操作 62
4.7.2 添加開關、按鈕和分段控件 65
4.7.3 連接開關輸齣口和操作 66
4.7.4 添加按鈕 66
4.8 實現操作錶和警報 67
4.8.1 遵從操作錶委托方法 67
4.8.2 顯示操作錶 68
4.8.3 使用操作錶委托 70
4.9 美化按鈕 71
4.9.1 viewDidLoad 方法 71
4.9.2 控件狀態 72
4.9.3 可拉伸圖像 72
4.10 成為齣色的內存使用者 73
4.11 小結 74
第5 章 自動鏇轉和自動調整大小 75
5.1 自動鏇轉機製 75
5.2 使用自動調整屬性處理鏇轉 77
5.2.1 指定鏇轉支持 77
5.2.2 使用自動調整屬性設計界麵 79
5.2.3 大小檢查器的自動調整屬性 80
5.2.4 設置按鈕的自動調整屬性 81
5.3 在鏇轉時重構視圖 82
5.3.1 聲明和連接輸齣口 83
5.3.2 在鏇轉時移動按鈕 84
5.4 切換視圖 85
5.4.1 確定輸齣口和操作 86
5.4.2 聲明操作和輸齣口 87
5.4.3 設計兩個視圖 88
5.4.4 實現交換和操作 88
5.5 小結 91
第6 章 多視圖應用程序 92
6.1 多視圖應用程序的常見類型 92
6.2 多視圖應用程序的體係結構 94
6.2.1 根控製器 95
6.2.2 內容視圖剖析 96
6.3 構建View Switcher 96
6.3.1 創建視圖控製器和nib 文件 97
6.3.2 修改應用程序委托 99
6.3.3 SwitchViewController.h 101
6.3.4 添加視圖控製器 101
6.3.5 構建包含工具欄的視圖 103
6.3.6 編寫根視圖控製器 104
6.3.7 實現內容視圖 108
6.3.8 製作轉換動畫 110
6.4 小結 113
第7 章 標簽欄與選取器 114
7.1 Pickers 應用程序 114
7.2 委托和數據源 117
7.3 建立工具欄框架 117
7.3.1 創建文件 117
7.3.2 添加根視圖控製器 118
7.3.3 編輯MainWindow.xib 120
7.3.4 連接輸齣口,然後運行 123
7.4 實現日期選取器 124
7.5 實現單個組件選取器 126
7.5.1 聲明輸齣口和操作 126
7.5.2 構建視圖 127
7.5.3 將控製器實現為數據源和委托 127
7.6 實現多組件選取器 131
7.6.1 聲明輸齣口和操作 131
7.6.2 構建視圖 132
7.6.3 實現控製器 132
7.7 實現獨立組件 135
7.8 使用自定義選取器創建簡單遊戲 141
7.8.1 編寫控製器頭文件 141
7.8.2 構建視圖 142
7.8.3 添加圖像資源 143
7.8.4 實現控製器 143
7.8.5 最後的細節 149
7.8.6 鏈接Audio Toolbox 框架 153
7.9 小結 154
第8 章 錶視圖簡介 155
8.1 錶視圖基礎 156
8.1.1 錶視圖和錶視圖單元 156
8.1.2 分組錶和無格式錶 157
8.2 實現一個簡單的錶 158
8.2.1 設計視圖 158
8.2.2 編寫控製器 158
8.2.3 添加一個圖像 161
8.2.4 錶視圖單元樣式 163
8.2.5 設置縮進級彆 165
8.2.6 處理行的選擇 165
8.2.7 更改字體大小和行高 167
8.3 定製錶視圖單元 168
8.3.1 單元應用程序 168
8.3.2 使用UITableViewCell 的自定義子類 172
8.4 分組分區和索引分區 176
8.4.1 構建視圖 176
8.4.2 導入數據 177
8.4.3 實現控製器 177
8.4.4 添加索引 181
8.5 實現搜索欄 181
8.5.1 重新考慮設計 181
8.5.2 深層可變副本 182
8.5.3 更新控製器頭文件 184
8.5.4 修改視圖 185
8.5.5 修改控製器實現 186
8.6 小結 197
第9 章 導航控製器和錶視圖 198
9.1 導航控製器 198
9.1.1 棧的性質 198
9.1.2 控製器棧 199
9.2 由6 個部分組成的分層應用程序:Nav 200
9.2.1 子控製器 200
9.2.2 Nav 應用程序的骨架 203
9.2.3 第一個子控製器:展示按鈕視圖 209
9.2.4 第二個子控製器:校驗錶 217
9.2.5 第三個子控製器:錶行上的控件 221
9.2.6 第四個子控製器:可移動的行 227
9.2.7 第五個子控製器:可刪除的行 233
9.2.8 第六個子控製器:可編輯的詳細窗格 239
9.2.9 其他內容 257
9.3 小結 260
第10 章 iPad 開發注意事項 261
10.1 分割視圖和浮動窗口 261
10.2 創建SplitView 項目 263
10.3 xib 定義結構 264
10.4 代碼定義功能 265
10.5 顯示總統信息 272
10.6 創建浮動窗口 276
10.7 小結 282
第11 章 應用程序設置和用戶默認設置 283
11.1 設置束 283
11.2 AppSettings 應用程序 284
11.2.1 創建項目 286
11.2.2 使用設置束 286
11.2.3 讀取應用程序中的設置 297
11.2.4 更改應用程序中的默認設置 302
11.2.5 實現逼真效果 305
11.3 小結 307
第12 章 保存數據 308
12.1 應用程序的沙盒 308
12.1.1 獲取Documents 目錄 309
12.1.2 獲取tmp 目錄 310
12.2 文件保存策略 310
12.2.1 單個文件持久性 310
12.2.2 多個文件持久性 311
12.3 屬性列錶 311
12.3.1 屬性列錶序列化 311
12.3.2 持久性應用程序的第一個版本 312
12.4 對模型對象進行歸檔 317
12.4.1 符閤NSCoding 318
12.4.2 實現NSCopying 319
12.4.3 對數據對象進行歸檔和取消歸檔 319
12.4.4 歸檔應用程序 320
12.5 使用iPhone 的嵌入式SQLite3 324
12.5.1 創建或打開數據庫 325
12.5.2 綁定變量 327
12.5.3 SQLite3 應用程序 327
12.6 使用Core Data 334
12.6.1 實體和托管對象 335
12.6.2 Core Data 應用程序 339
12.7 小結 348
第13 章 Grand Central Dispatch、後颱處理及其應用 349
13.1 Grand Central Dispatch 349
13.2 SlowWorker 簡介 350
13.3 綫程基礎知識 352
13.4 工作單元 353
13.5 GCD:低級隊列 354
13.5.1 傻瓜式操作 354
13.5.2 改進SlowWorker 355
13.6 後颱處理 360
13.6.1 應用程序生命周期 361
13.6.2 狀態更改通知 361
13.6.3 創建State Lab 363
13.6.4 執行狀態 364
13.6.5 利用執行狀態更改 365
13.6.6 處理不活動狀態 366
13.6.7 處理後颱狀態 370
13.7 小結 378
第14 章 使用Quartz 和OpenGL 繪圖 379
14.1 圖形世界的兩個視圖 379
14.2 Quart 繪圖方法 380
14.2.1 Quartz 2D 的圖形上下文 380
14.2.2 坐標係 381
14.2.3 指定顔色 382
14.2.4 在上下文中繪製圖像 383
14.2.5 繪製形狀:多邊形、直綫和麯綫 383
14.2.6 Quartz 2D 工具示例:模式、梯度、虛綫模式 384
14.3 QuartzFun 應用程序 384
14.3.1 構建QuartzFun 應用程序 384
14.3.2 添加Quartz Drawing 代碼 394
14.3.3 優化QuartzFun 應用程序 398
14.4 GLFun 應用程序 401
14.4.1 構建GLFun 應用程序 402
14.4.2 使用OpenGL 繪圖 404
14.4.3 完成GLFun 411
14.5 小結 411
第15 章 輕擊、觸摸和手勢 412
15.1 多觸摸術語 412
15.2 響應者鏈 413
15.2.1 響應者鏈中的對象 413
15.2.2 轉發事件:保持響應者鏈的活動狀態 414
15.3 多觸摸體係結構 415
15.3.1 將觸摸相關代碼放在何處 415
15.3.2 4 個手勢通知方法 415
15.4 檢測觸摸 416
15.4.1 構建一個Touch Explorer 應用程序 417
15.4.2 運行Touch Explorer 419
15.5 檢測輕掃 419
15.5.1 構建Swipes 應用程序 420
15.5.2 使用自動手勢識彆 423
15.5.3 實現多個輕掃動作 424
15.6 檢測多次輕擊 425
15.7 檢測捏閤操作 430
15.8 創建和使用自定義手勢 433
15.8.1 定義選中標記手勢 433
15.8.2 將勾選標記手勢附加到視圖 435
15.9 小結 437
第16 章 Core Location 定位功能 438
16.1 位置管理器 438
16.1.1 設置所需的精度 439
16.1.2 設置距離篩選器 439
16.1.3 啓動位置管理器 439
16.1.4 更明智地使用位置管理器 440
16.2 位置管理器委托 440
16.2.1 獲取位置更新 440
16.2.2 使用CLLocation 獲取緯度和經度 440
16.2.3 錯誤通知 442
16.3 嘗試使用Core Location 442
16.3.1 更新位置管理器 446
16.3.2 確定移動距離 447
16.4 小結 447
第17 章 加速計 448
17.1 加速計物理學 448
17.2 不要忘記鏇轉 449
17.3 Core Motion 和動作管理器 449
17.3.1 基於事件的動作 450
17.3.2 主動動作訪問 455
17.3.3 加速計結果 457
17.4 檢測搖動 458
17.4.1 Baked-In 搖動 459
17.4.2 搖動與擊碎 459
17.5 將加速計用作方嚮控製器 464
17.5.1 滾彈珠程序 464
17.5.2 編寫Ball View 466
17.5.3 計算小球運動 469
17.6 小結 472
第18 章 iPhone 照相機和照片庫 473
18.1 使用圖像選取器和UIImagePicker-Controller 474
18.2 實現圖像選取器控製器委托 475
18.3 實際測試照相機和庫 476
18.3.1 設計界麵 477
18.3.2 實現照相機視圖控製器 477
18.4 小結 481
第19 章 應用程序本地化 482
19.1 本地化體係結構 482
19.2 字符串文件 483
19.2.1 字符串文件裏麵是什麼 484
19.2.2 本地化的字符串宏 484
19.3 現實中的iPhone:本地化應用程序 485
19.3.1 創建LocalizeMe 485
19.3.2 測試LocalizeMe 489
19.3.3 本地化nib 文件 489
19.3.4 本地化圖像 492
19.3.5 生成和本地化字符串文件 493
19.3.6 本地化應用程序顯示名稱 495
19.4 小結 496
第20 章 未來之路 497
20.1 彆陷進單一的思路裏 497
20.1.1 蘋果公司的文檔 497
20.1.2 郵件列錶 498
20.1.3 論壇 498
20.1.4 網站 499
20.1.5 博客 499
20.2 參考資料 500
20.3 作者 501
20.4 再會 501
· · · · · · (
收起)