第1章 歡迎來到iOS世界 1
1.1 關於本書 1
1.2 必要條件 1
1.2.1 開發者選項 3
1.2.2 必備知識 3
1.3 編寫iOS應用程序有何不同 4
1.3.1 隻能同時運行一個應用 4
1.3.2 隻有一個窗口 4
1.3.3 有限的訪問權限 5
1.3.4 有限的響應時間 5
1.3.5 有限的屏幕大小 5
1.3.6 有限的係統資源 5
1.3.7 不支持垃圾迴收 6
1.3.8 新功能 6
1.3.9 與眾不同的交互方法 6
1.4 本書內容 7
1.5 這一版的新內容 8
1.6 準備開始吧 9
第2章 創建項目 10
2.1 在Xcode中創建項目 10
2.1.1 Xcode項目窗口 14
2.1.2 深入研究項目 22
2.2 界麵構建器簡介 23
2.2.1 文件格式 24
2.2.2 分鏡 25
2.2.3 庫 26
2.2.4 在視圖中添加標簽 27
2.2.5 屬性修改 29
2.3 畫龍點睛——美化iPhone應用 31
2.4 小結 33
第3章 實現基本交互 34
3.1 MVC方法 34
3.2 創建項目 35
3.3 視圖控製器 36
3.3.1 輸齣接口和操作方法 37
3.3.2 清理視圖控製器 40
3.3.3 設計用戶界麵 40
3.3.4 運行應用 50
3.3.5 樣式文本 50
3.4 應用程序委托 51
3.5 小結 54
第4章 更豐富的用戶界麵 55
4.1 滿是控件的屏幕 55
4.2 活躍控件、靜態控件和被動控件 57
4.3 創建應用程序 58
4.4 實現圖像視圖和文本框 59
4.4.1 添加圖像視圖 59
4.4.2 調整圖像視圖的大小 62
4.4.3 設置視圖屬性 63
4.4.4 添加文本框 65
4.4.5 創建並關聯輸齣接口 71
4.5 關閉鍵盤 73
4.5.1 輸入完成後關閉鍵盤 73
4.5.2 通過觸摸背景關閉鍵盤 74
4.5.3 添加滑動條和標簽 77
4.5.4 添加頂部約束 78
4.5.5 創建並關聯操作方法和輸齣接口 79
4.5.6 實現操作方法 79
4.6 實現開關、按鈕和分段控件 80
4.6.1 添加兩個帶標簽的開關 81
4.6.2 為開關創建並關聯輸齣接口和操作方法 83
4.6.3 實現開關的操作方法 83
4.7 美化按鈕 85
4.7.1 可拉伸圖像 85
4.7.2 控件狀態 86
4.7.3 為按鈕創建並關聯輸齣接口和操作方法 87
4.8 實現分段控件的操作方法 87
4.9 實現操作錶單和警告視圖 88
4.9.1 遵從操作錶單委托方法 88
4.9.2 顯示操作錶單 89
4.9.3 最終調整 92
4.10 小結 92
第5章 自動鏇轉和自動調整大小 93
5.1 自動鏇轉機製 93
5.1.1 點、像素和Retina顯示屏 94
5.1.2 自動鏇轉的實現方式 95
5.2 選擇視圖支持的方嚮 95
5.2.1 應用級支持的方嚮 96
5.2.2 單個控製器的鏇轉支持 97
5.3 使用約束設計界麵 99
5.3.1 覆蓋默認的約束 101
5.3.2 與屏幕等寬的標簽 102
5.4 鏇轉時重構視圖 104
5.4.1 創建並關聯輸齣接口 106
5.4.2 鏇轉時移動按鈕 106
5.5 小結 109
第6章 多視圖應用 110
6.1 多視圖應用的常見類型 110
6.2 多視圖應用的體係結構 113
6.2.1 根控製器 115
6.2.2 內容視圖剖析 116
6.3 構建View Switcher項目 116
6.3.1 創建視圖控製器和分鏡 117
6.3.2 修改應用委托 119
6.3.3 修改BIDSwitchView Controller.m 120
6.3.4 添加視圖控製器 120
6.3.5 構建帶有工具欄的視圖 122
6.3.6 編寫根視圖控製器 124
6.3.7 實現內容視圖 127
6.3.8 轉換過程的動畫效果 130
6.4 小結 132
第7章 分頁欄與選取器 133
7.1 Pickers應用程序 134
7.2 委托和數據源 136
7.3 創建Pickers應用程序 136
7.3.1 創建視圖控製器 136
7.3.2 添加分鏡 137
7.3.3 創建分頁欄控製器 138
7.3.4 初次運行 140
7.4 實現日期選取器 141
7.5 實現單滾輪選取器 144
7.5.1 構建視圖 144
7.5.2 將控製器實現為數據源和委托 145
7.6 實現多滾輪取器 149
7.6.1 聲明輸齣接口和操作方法 149
7.6.2 構建視圖 149
7.6.3 實現控製器 150
7.7 實現內容取決於滾輪 152
7.8 使用自定義選取器創建一個簡單遊戲 158
7.8.1 編寫控製器頭文件 158
7.8.2 構建視圖 159
7.8.3 添加圖像資源 160
7.8.4 實現控製器 160
7.8.5 最後的細節 163
7.9 小結 166
第8章 錶視圖簡介 167
8.1 錶視圖基礎 167
8.1.1 錶視圖和錶視圖單元 168
8.1.2 分組錶和無格式錶 168
8.2 實現一個簡單錶 170
8.2.1 設計視圖 170
8.2.2 編寫控製器 171
8.2.3 添加一個圖像 175
8.2.4 錶視圖單元樣式 176
8.2.5 設置縮進級彆 178
8.2.6 處理行的選擇 179
8.2.7 更改字體大小和行高 180
8.3 定製錶視圖單元 182
8.3.1 嚮錶視圖單元添加子視圖 182
8.3.2 創建UITableViewCell子類 183
8.3.3 從nib文件加載UITableViewCell 187
8.4 分組分區和索引分區 191
8.4.1 構建視圖 191
8.4.2 導入數據 191
8.4.3 實現控製器 192
8.4.4 添加索引 196
8.5 解決狀態欄乾擾 197
8.6 實現搜索欄 198
8.7 小結 203
第9章 導航控製器和錶視圖 204
9.1 導航控製器 204
9.1.1 棧的概念 204
9.1.2 控製器棧 205
9.2 一個簡單的字體瀏覽器:Fonts 206
9.2.1 子控製器 207
9.2.2 Font應用的基礎框架 209
9.3 創建根視圖控製器 213
9.4 初始化分鏡 216
9.5 第一個子控製器:字體列錶視圖 218
9.5.1 設定字體列錶的分鏡 220
9.5.2 對根視圖控製器的轉場進行設置 221
9.6 創建字體尺寸視圖控製器 222
9.6.1 設計字體尺寸視圖控製器的分鏡 224
9.6.2 對字體列錶視圖控製器的轉場進行設置 224
9.7 創建字體信息視圖控製器 225
9.7.1 設計字體信息視圖控製器的分鏡 226
9.7.2 設置約束 227
9.7.3 調整字體列錶視圖控製器的轉場 228
9.7.4 我的收藏字體 229
9.8 改善錶視圖 229
9.8.1 實現輕掃刪除 230
9.8.2 實現拖動排序 231
9.9 小結 232
第10章 集閤視圖 233
10.1 創建DialogViewer項目 233
10.2 修補視圖控製器類 234
10.3 自定義單元 235
10.4 配置視圖控製器 237
10.5 內容單元 239
10.6 實現流式布局 240
10.7 分區標題視圖 241
10.8 小結 243
第11章 iPad開發注意事項 244
11.1 分割視圖和浮動窗口 244
11.1.1 創建SplitView項目 246
11.1.2 在分鏡中定義結構 248
11.1.3 使用代碼定義功能 250
11.2 顯示總統信息 256
11.3 創建浮動窗口 261
11.4 小結 267
第12章 應用設置及用戶默認設置 268
12.1 設置捆綁包入門 268
12.2 應用:Bridge Control 269
12.2.1 創建項目 272
12.2.2 使用設置捆綁包 273
12.2.3 讀取應用中的設置 286
12.2.4 在應用中修改默認設置 289
12.2.5 注冊默認值 292
12.2.6 保證設置有效 293
12.3 小結 295
第13章 數據持久化基礎知識 296
13.1 應用的沙盒 296
13.1.1 獲取Documents目錄 297
13.1.2 獲取tmp目錄 298
13.2 文件保存方案 298
13.2.1 單文件持久化 299
13.2.2 多文件持久化 299
13.3 屬性列錶 299
13.3.1 屬性列錶序列化 299
13.3.2 Persistence應用的第一個版本 300
13.4 對模型對象進行歸檔 305
13.4.1 遵循NSCoding協議 305
13.4.2 實現NSCopying協議 306
13.4.3 對數據對象進行歸檔和取消歸檔 307
13.4.4 歸檔應用 308
13.5 使用iOS內嵌的SQLite3 311
13.5.1 創建或打開數據庫 312
13.5.2 綁定變量 313
13.5.3 SQLite3應用 314
13.6 使用Core Data 320
13.6.1 實體和托管對象 321
13.6.2 Core Data應用 324
13.7 小結 333
第14章 iCloud之旅 334
14.1 使用UIDocument管理文檔存儲 334
14.1.1 構建TinyPix 335
14.1.2 創建BIDTinyPixDocument類 336
14.1.3 主控製器代碼 338
14.1.4 初始分鏡 345
14.1.5 創建BIDTinyPixView類 347
14.1.6 設計分鏡 351
14.2 添加iCloud支持 353
14.2.1 創建授權文件 353
14.2.2 如何查詢 354
14.2.3 保存在哪裏 356
14.2.4 將首選項保存到iCloud 357
14.3 小結 358
第15章 Grand Central Dispatch和後颱處理 359
15.1 Grand Central Dispatch 359
15.2 SlowWorker簡介 360
15.3 綫程基礎知識 362
15.4 工作單元 363
15.5 GCD:底層隊列 364
15.5.1 傻瓜式操作 364
15.5.2 改進SlowWorker 365
15.6 後颱處理 370
15.6.1 應用生命周期 371
15.6.2 狀態更改通知 372
15.6.3 創建State Lab項目 373
15.6.4 執行狀態的變化 374
15.6.5 利用執行狀態更改 376
15.6.6 處理不活躍狀態 377
15.6.7 處理後颱狀態 380
15.7 小結 387
第16章 使用Core Graphics繪圖 388
16.1 Quartz 2D基礎概念 388
16.2 Quartz 2D繪圖方法 388
16.2.1 Quartz 2D圖形環境 389
16.2.2 坐標係統 390
16.2.3 指定顔色 391
16.2.4 在環境中繪製圖像 393
16.2.5 繪製形狀:多邊形、直綫和麯綫 393
16.2.6 Quartz 2D樣例:圖案、漸變色、虛綫圖 394
16.3 QuartzFun應用程序 394
16.3.1 構建QuartzFun應用程序 395
16.3.2 添加Quartz 2D繪製代碼 404
16.3.3 優化QuartzFun應用程序 409
16.4 小結 412
第17章 Sprite Kit遊戲框架 413
17.1 基礎入門 413
17.1.1 自定義初始場景 414
17.1.2 隱藏狀態欄 415
17.2 場景設置 415
17.3 玩傢動作 418
17.3.1 嚮場景中插入玩傢 418
17.3.2 觸摸處理 419
17.3.3 玩傢移動 420
17.3.4 幾何運算 421
17.3.5 輕微擺動 421
17.4 創建你的敵人 422
17.5 在場景中放入敵人 423
17.6 開始射擊 425
17.6.1 定義物理類彆 425
17.6.2 創建BIDBulletNode類 425
17.6.3 應用物理知識 427
17.6.4 在場景中添加導彈 427
17.7 利用物理引擎攻擊敵人 429
17.8 實現關卡 431
17.8.1 注意敵人 431
17.8.2 進入下一關卡 431
17.9 自定義碰撞 433
17.9.1 為SKNode添加類彆 434
17.9.2 嚮敵人添加自定義碰撞行為 435
17.9.3 準確顯示玩傢生命 436
17.10 粒子係統 437
17.10.1 第一個粒子 437
17.10.2 嚮場景中加入粒子 440
17.11 遊戲結束 441
17.12 開始場景 443
17.13 播放音樂 445
17.14 小結 446
第18章 輕點、觸摸和手勢 447
18.1 多點觸控術語 447
18.2 響應者鏈 448
18.2.1 響應事件 448
18.2.2 轉發事件:保持響應者鏈的活動狀態 449
18.3 多點觸控體係結構 450
18.4 4個手勢通知方法 450
18.5 TouchExplorer應用 451
18.6 Swipes應用 454
18.6.1 自動手勢識彆 457
18.6.2 實現多指輕掃 459
18.7 檢測多次輕點 460
18.8 檢測捏閤和鏇轉 465
18.9 自定義手勢 469
18.9.1 CheckPlease應用 470
18.9.2 CheckPlease的觸摸方法 472
18.10 小結 474
第19章 Core Location和Map Kit 475
19.1 位置管理器 476
19.1.1 設置精度 476
19.1.2 設置距離篩選器 476
19.1.3 啓動位置管理器 477
19.1.4 閤理使用位置管理器 477
19.2 位置管理器委托 477
19.2.1 獲取位置更新 477
19.2.2 使用CLLocation獲取緯度和經度 477
19.2.3 錯誤通知 479
19.3 開始構建Core Location 480
19.4 將移動路綫展現在地圖上 484
19.5 小結 488
第20章 陀螺儀和加速計 489
20.1 加速計物理特性 489
20.2 陀螺儀鏇轉特性 490
20.3 Core Motion和動作管理器 490
20.3.1 基於事件的動作 491
20.3.2 主動動作訪問 496
20.3.3 加速計結果 498
20.4 檢測搖動 498
20.4.1 內嵌的搖動檢測 499
20.4.2 搖動與擊碎 500
20.5 將加速計用做方嚮控製器 502
20.5.1 滾彈珠程序 503
20.5.2 實現BIDBallView類 505
20.5.3 計算彈珠運動 508
20.6 小結 510
第21章 攝像頭和照片庫 511
21.1 圖像選取器和UIImagePicker-
Controller 511
21.2 實現圖像選取器控製器委托 513
21.3 實際測試攝像頭和照片庫 514
21.3.1 設計界麵 515
21.3.2 實現攝像頭視圖控製器 515
21.4 小結 519
第22章 應用本地化 520
22.1 本地化體係結構 520
22.2 字符串文件 521
22.2.1 字符串文件 522
22.2.2 本地化的字符串宏 522
22.3 現實中的iOS本地化應用 523
22.3.1 創建LocalizeMe 523
22.3.2 測試LocalizeMe 526
22.3.3 本地化項目 527
22.3.4 初始化分鏡 530
22.3.5 創建並本地化字符串文件 532
22.3.6 應用顯示名稱的本地化 535
22.4 小結 536
· · · · · · (
收起)