第1章 多點觸摸與手勢檢測 1
1.1 響應者鏈 2
1.2 響應觸碰方法 3
1.3 使用手勢處理器(UIGESTURERECOGNIZER) 3
1.3.1 使用UITAPGESTURERECOGNIZER處理點擊手勢 4
1.3.2 使用UIPINCHGESTURERECOGNIZER處理捏閤手勢 6
實例:通過捏閤手勢縮放圖片 7
1.3.3 使用UIROTATIONGESTURERECOGNIZER處理鏇轉手勢 9
實例:通過鏇轉手勢鏇轉圖片 9
1.3.4 使用UISWIPEGESTURERECOGNIZER處理輕掃手勢 10
實例:貪食蛇 12
1.3.5 使用UIPANGESTURERECOGNIZER處理拖動手勢 18
1.3.6 使用UILONGPRESSGESTURERECOGNIZER處理長按手勢 19
實例:長按添加按鈕 20
1.4 創建和使用自定義手勢處理器 21
1.4.1 開發自定義手勢處理器 21
1.4.2 使用自定義手勢處理器 23
1.5 本章小結 24
第2章 國際化 25
2.1 IOS應用國際化的基礎 26
2.1.1 IOS應用的國際化思路 26
2.1.2 OBJECTIVE-C國際化支持的語言和國傢 28
2.2 國際化界麵設計文件 29
2.3 國際化應用程序的顯示名稱 32
2.4 國際化圖片 34
2.5 國際化文本 35
2.6 本章小結 38
第3章 IOS的數據存儲與IO 39
3.1 應用程序沙盒 40
3.1.1 獲取DOCUMENTS目錄 41
3.1.2 獲取TMP目錄 41
3.1.3 文件保存策略思考 41
3.2 應用程序參數與用戶默認設置 42
3.2.1 使用SETTINGS BUNDLE 42
3.2.2 使用NSUSERDEFAULTS讀取、保存應用程序參數 50
3.3 屬性列錶 54
實例:備忘錄 55
3.4 對象歸檔和原生I/O API 58
3.5 使用SQLITE 3數據庫 58
3.5.1 IOS的SQLITE編程 58
3.5.2 創建數據庫和錶 63
3.5.3 使用SQL語句執行查詢 63
實例:英文生詞本 64
3.5.4 使用SQLITE3工具 67
3.5.5 使用SQLITE MANAGER管理數據庫 69
3.6 使用CORE DATA框架 71
3.6.1 CORE DATA簡介 71
3.6.2 初始化CORE DATA項目 73
3.6.3 設計實體模型 76
3.6.4 使用CORE DATA實現數據的增、刪、改、查 78
3.6.5 管理實體的關聯關係 84
實例:圖書管理係統 84
3.7 本章小結 95
第4章 多媒體應用開發 96
4.1 音頻和視頻的播放 97
4.1.1 使用SYSTEM SOUND SERVICES播放音效 97
4.1.2 使用AVAUDIOPLAYER播放音樂 98
4.1.3 使用MPMEDIAPICKERCONTROLLER選擇係統音樂 102
實例:簡單音樂播放器 103
4.1.4 使用MPMOVIEPLAYERCONTROLLER播放視頻 106
4.2 使用AVAUDIORECORDER錄製音頻 108
4.3 拍照和錄製視頻 112
4.3.1 使用UIIMAGEPICKERCONTROLLER拍照和錄製視頻 112
4.3.2 使用AVFOUNDATION拍照和錄製視頻 116
實例:完全自定義的相機 118
4.4 使用AVFOUNDATION生成視頻縮略圖 135
4.5 本章小結 137
第5章 管理手機 138
5.1 使用ADDRESSBOOK管理聯係人 139
5.1.1 刪除聯係人 142
5.1.2 添加聯係人 144
5.1.3 修改聯係人 147
5.2 使用ADDRESSBOOKUI管理聯係人 151
5.2.1 使用ABNEWPERSONVIEWCONTROLLER添加聯係人 153
5.2.2 使用ABUNKNOWNPERSONVIEWCONTROLLER顯示未知聯係人 154
5.2.3 使用ABPEOPLEPICKERNAVIGATIONCONTROLLER選擇聯係人 156
5.2.4 使用ABPERSONVIEWCONTROLLER顯示指定聯係人 157
5.3 使用UIAPPLICATION打電話、發短信 159
5.4 使用MFMESSAGECOMPOSEVIEWCONTROLLER發短信 160
5.5 使用MFMAILCOMPOSEVIEWCONTROLLER發送郵件 162
5.6 本章小結 165
第6章 加速計與陀螺儀 166
6.1 IOS支持的加速計和陀螺儀 167
6.1.1 IOS加速計和陀螺儀的理論基礎 167
6.1.2 基於代碼塊方式獲取加速度數據、陀螺儀數據、磁場數據 168
6.1.3 主動請求獲取加速度數據、陀螺儀數據、磁場數據 172
實例:怪物足球 173
6.2 感知設備移動 178
實例:水平儀 181
6.3 IOS 7新增的計步器 184
6.4 IOS 7新增的CMMOTIONACTIVITYMANAGER 186
6.5 本章小結 188
第7章 多綫程 189
7.1 綫程概述 190
7.1.1 綫程和進程 190
7.1.2 多綫程的優勢 191
7.2 使用NSTHREAD實現多綫程 192
7.2.1 創建和啓動綫程 192
7.2.2 綫程的狀態 194
7.2.3 終止子綫程 194
7.2.4 綫程睡眠 195
實例:使用綫程下載網絡圖片 196
7.2.5 改變綫程優先級 197
7.3 綫程同步與綫程通信 199
7.3.1 綫程安全問題 199
7.3.2 使用@SYNCHRONIZED實現同步 201
7.3.3 釋放對同步監視器的鎖定 203
7.3.4 同步鎖(NSLOCK) 203
7.3.5 使用NSCONDITION控製綫程通信 205
實例:生産者-消費者 205
7.4 使用GCD實現多綫程 208
7.4.1 創建隊列 209
7.4.2 異步提交任務 210
實例:使用GCD下載圖片 212
7.4.3 同步提交任務 213
7.4.4 多次執行的任務 214
7.4.5 隻執行一次的任務 215
7.5 後颱運行 216
7.5.1 進入後颱時釋放內存 216
實例:瘋狂飛機大戰 216
7.5.2 進入後颱時保存狀態 223
7.5.3 請求更多的後颱時間 223
7.6 使用NSOPERATION與NSOPERATIONQUEUE實現多綫程 225
7.6.1 使用NSINVOCATIONOPERATION和NSBLOCKOPERATION 226
實例:使用NSBLOCKOPERATION下載圖片 226
7.6.2 定義NSOPERATION子類 227
7.7 本章小結 229
第8章 IOS網絡應用編程 230
8.1 檢測網絡狀態 231
8.1.1 檢查網絡狀態 231
8.1.2 監聽網絡狀態改變 234
8.2 使用CFNETWORK實現TCP協議的通信 235
8.2.1 IP地址與端口號 236
8.2.2 TCP協議基礎 236
8.2.3 使用CFSOCKET實現TCP服務器端 237
8.2.4 使用CFSOCKET實現TCP客戶端 241
實例:網絡聊天程序 244
8.2.5 使用COCOAASYNCSOCKET實現TCP客戶端 247
8.3 使用NSURLCONNECTION 250
8.3.1 使用NSURLCONNECTION從網絡獲取數據 250
8.3.2 使用NSMUTABLEURLREQUEST嚮服務器發送數據 253
8.4 XML解析 255
8.4.1 DOM與SAX 255
8.4.2 使用NSXMLPARSER解析XML文檔 257
8.4.3 使用LIBXML2解析XML文檔 262
8.4.4 使用GDATAXML解析XML文檔 266
8.4.5 使用GDATAXML生成、修改XML文檔 268
8.5 JSON解析 271
8.5.1 JSON的基本知識 271
8.5.2 使用NSJSONSERIALIZATION處理JSON數據 274
8.5.3 使用SBJSON解析JSON數據 274
8.5.4 使用JSONKIT解析JSON數據 275
8.6 使用AFNETWORKING實現網絡通信 280
8.6.1 提交GET請求與提交POST請求 280
實例:訪問被保護資源 281
8.6.2 處理JSON或PLIST響應 284
8.6.3 處理XML響應 288
8.6.4 上傳文件 290
8.7 使用ASIHTTPREQUEST框架實現網絡編程 293
8.7.1 發送同步或異步的GET請求 293
8.7.2 使用代碼塊 296
8.7.3 使用NSOPERATIONQUEUE管理請求 297
8.7.4 發送請求參數和文件上傳 299
實例:天氣預報 300
8.8 本章小結 311
第9章 使用CORELOCATION定位 312
9.1 IOS的定位支持 313
9.1.1 GPS衛星定位 313
9.1.2 基站定位 314
9.1.3 WIFI定位 314
9.2 獲取定位信息 314
9.2.1 獲取位置信息 315
9.2.2 使用IOS模擬器模擬位置 318
9.2.3 監控行車速度和行車距離 318
9.3 方嚮監測 320
實例:指南針 322
9.4 區域監測 323
9.5 本章小結 325
第10章 使用MAPKIT開發地圖服務 326
10.1 使用MAPKIT框架 327
10.1.1 使用MKMAPVIEW控件 328
10.1.2 指定地圖顯示中心和顯示區域 329
10.1.3 使用IOS 7新增的MKMAPCAMERA 332
10.2 根據地址定位 333
10.2.1 地址解析與反嚮地址解析 333
10.2.2 根據地址定位 337
10.3 在地圖上添加錨點 340
10.3.1 添加簡單的錨點 340
10.3.2 添加自定義錨點 343
10.4 在地圖上添加覆蓋層 345
10.4.1 添加幾何覆蓋層 346
10.4.2 使用IOS 7新增的MKTILEOVERLAY覆蓋層 348
10.5 使用IOS 7新增的MKDIRECTIONS獲取導航路綫 350
實例:行車導航儀 351
10.6 本章小結 354
第11章 推送機製 355
11.1 使用NSNOTIFICATIONCENTER通信 356
11.1.1 使用NSNOTIFICATIONCENTER監聽係統組件的通知 358
11.1.2 使用NSNOTIFICATIONCENTER監聽自定義通知 359
11.2 IOS本地通知 361
11.3 IOS遠程推送通知 364
11.3.1 開發PUSH客戶端應用 366
11.3.2 開發PUSH服務端程序 377
11.4 本章小結 381
第12章 ICLOUD服務與應用 382
12.1 ICLOUD入門 383
12.1.1 為應用開啓ICLOUD服務 384
12.1.2 使用NSMETADATAQUERY查詢文檔 389
12.1.3 添加文檔 393
12.1.4 編輯文檔 395
12.1.5 刪除文檔 397
12.2 使用ICLOUD保存雲端首選項 398
12.3 本章小結 401
第13章 使用COCOS2D開發2D遊戲 402
13.1 COCOS2D簡介 403
13.1.1 COCOS2D的特點 403
13.1.2 COCOS2D的主要功能 403
13.2 COCOS2D的下載與安裝 404
13.2.1 下載COCOS2D 404
13.2.2 安裝COCOS2D 405
13.2.3 使用COCOS2D-IPHONE的幫助文檔 405
13.2.4 COCOS2D中內置的項 406
13.3 創建COCOS2D項目 407
13.3.1 HELLOWORLD COCOS2D項目 407
13.3.2 COCOS2D項目如何支持ARC 408
13.3.3 COCOS2D項目結構和代碼分析 413
13.4 CCNODE節點類 419
13.4.1 CCNODE類的屬性 419
13.4.2 CCNode類的方法 420
13.5 CCScene場景類 423
13.5.1 CCTransitionScene 場景切換 423
13.5.2 cocos2d支持的場景過渡效果 424
13.6 CCLayer類 424
13.6.1 CCLayer類的屬性 425
13.6.2 CCLayer類的常用方法 425
13.6.3 CCLayer類的作用 425
13.6.4 CCLayerColor類的屬性和方法 425
13.6.5 CCLayerGradient漸變色層類 426
13.6.6 CCMenu菜單類 426
13.7 CCDirector導演類 429
13.7.1 CCDirector導演類的屬性 430
13.7.2 CCDirector導演類的方法 430
13.8 CCTexture紋理類 431
13.8.1 紋理的相關概念 431
13.8.2 紋理相關的類 431
13.9 CCSprite精靈類 432
13.9.1 CCSprite精靈類的屬性 432
13.9.2 CCSprite精靈類的方法 432
13.9.3 CCSpriteFrame精靈幀 435
13.9.4 CCSpriteFrameCache精靈幀緩存 436
13.9.5 CCSpriteBatchNode精靈錶單 436
13.9.6 製作精靈錶單 438
13.9.7 精靈錶單示例 440
13.10 cocos2d中的動作 442
13.10.1 cocos2d中的動作類 443
13.10.2 基本動作 444
13.10.3 組閤動作 453
13.10.4 Ease動作 454
13.10.5 延遲動作 456
13.10.6 方法迴調動作 456
13.10.7 代碼塊調用動作 460
13.11 cocos2d中的動畫 462
13.11.1 cocos2d中動畫相關的類 462
13.11.2 簡單動畫效果 463
13.11.3 使用精靈錶單實現動畫效果 464
13.12 cocos2d中的文本 466
13.12.1 CCLabelTTF類 466
13.12.2 CCLabelBMFont類 467
13.13 cocos2d中的聲音 470
13.13.1 SimpleAudioEngine 470
13.13.2 遊戲中的聲音設置選項功能實現 474
13.14 瘋狂打飛機遊戲 477
13.14.1 開始前的準備工作 477
13.14.2 添加遊戲菜單項功能 478
13.14.3 預加載遊戲資源 480
13.14.4 玩傢飛機飛行效果 485
13.14.5 玩傢飛機Touch實現 487
13.14.6 背景滾動效果 488
13.14.7 添加敵機 491
13.14.8 玩傢飛機添加子彈並射擊 494
13.14.9 添加背景音樂 498
13.14.10 添加遊戲積分統計 498
13.14.11 添加遊戲大Boss 500
13.15 本章小結 504
第14章 粒子效果、瓦片地圖和物理引擎 505
14.1 粒子係統相關的類 506
14.1.1 CCParticleSystem類 506
14.1.2 CCParticleSystemQuad類 511
14.1.3 CCParticleBatchNode類 512
14.2 cocos2d中內置的粒子係統 512
14.2.1 使用cocos2d內置的粒子係統 513
14.2.2 手動創建粒子係統類 514
14.3 使用Particle Designer生成粒子效果 517
14.3.1 Particle Designer粒子工具的使用 518
14.3.2 使用plist文件創建粒子係統 520
14.4 瓦片地圖 520
14.4.1 下載和安裝Tiled地圖編輯器 521
14.4.2 使用Tiled繪製地圖 522
14.5 Tiled地圖相關的類 527
14.5.1 CCTMXTiledMap類 527
14.5.2 CCTMXLayer類 529
14.5.3 CCTMXObjectGroup類 530
14.6 在項目中使用Tiled地圖 530
14.7 真實手遊:萌仙 535
14.7.1 設計地圖場景 535
14.7.2 載入地圖 535
14.7.3 地圖的移動 537
14.7.4 物體遮擋效果 539
14.7.5 設置障礙物 542
14.7.6 尋路算法 544
14.7.7 隨機齣現怪物 549
14.7.8 玩傢和怪物進行戰鬥 552
14.8 Box2D物理引擎 559
14.8.1 物理引擎概述 559
14.8.2 Box2D的核心概念 559
14.8.3 Box2D常用的屬性和方法 562
14.8.4 Box2D模闆項目HelloBox2D 563
14.8.5 HelloBox2D模闆項目代碼分析 565
14.8.6 cocos2d和Box2D 573
14.8.7 Box2D開發步驟 575
14.9 開發Box2D項目 575
14.10 憤怒的小鳥 581
14.10.1 開始前的準備工作 581
14.10.2 製作遊戲啓動畫麵 581
14.10.3 進度條製作 582
14.10.4 遊戲中的粒子效果 585
14.10.5 遊戲選關操作 590
14.10.6 設計關卡數據 594
14.10.7 設計精靈類 596
14.10.8 遊戲主界麵 601
14.10.9 彈弓發射小鳥 604
14.10.10 整閤Box2D物理引擎 609
14.10.11 遊戲過關設計 613
14.11 本章小結 616
· · · · · · (
收起)