《iOS編程實戰寶典》是2014年8月1日清華大學出版社出版的圖書,作者是曾源。
基本介紹
- 書名:iOS編程實戰寶典
- 作者:曾源
- ISBN:9787302347972
- 定價:89元
- 出版社:清華大學出版社
- 出版時間:2014.08.01
- 裝幀:平裝
- 印次:1-1
內容簡介,圖書目錄,
內容簡介
本書以實戰開發為原則,通過開發中最常見的技術模組,配合每章的開發實例及最後的一個完整的綜合項目案例,全面、詳細地介紹了iOS開發從易到難,從界面到硬體等技術要點的整合使用,兼顧iPhone和iPad的APP開發。
全書共21章,分為4篇。第1篇為基礎篇,讓從未接觸過iOS開發的人員快速了解iOS SDK,Object-C和Xcode;第2篇為UI開發篇,讀者將系統學習界面與多視圖知識,包括互動原理、互動控制項、表視圖、導航視圖和選擇器等;第3篇為高級篇,涉及Storyboard、數據存儲、GCD、觸屏和手勢、多媒體、硬體、重力感應和加速等大量進階內容;第4篇為實戰篇,通過一個食譜APP,讓讀者了解如何開發自己的APP程式,還學習了第三方框架Three20,還介紹了如何開發iPhone和iPad都兼容的APP程式。
圖書目錄
第1篇基礎篇
第1章iOS開發概述 2
1.1本書的宗旨 2
1.2iOS開發的特點 2
1.2.1一次只能運行一個應用程式 3
1.2.2一個應用程式只有一個視窗 3
1.2.3數據訪問機制 3
1.2.4螢幕尺寸限制 3
1.2.5回響時間限制 4
1.2.6設備資源限制 4
1.2.7互動限制 5
1.3iOS的獨特功能 5
1.3.1GameCenter 5
1.3.2Storyboard 5
1.3.3Twitter 6
1.3.4iCloud 6
1.3.5通知中心 6
1.3.6Passbook 7
1.4加入Apple開發者計畫 7
1.4.1開發者賬號 7
1.4.2加入Apple開發人員計畫 8
1.4.3創建AppleID 9
1.5下載和安裝Xcode 11
1.5.1下載Xcode 11
1.5.2安裝Xcode 12
1.6小結 14
1.7習題 15
第2章介紹Objective-C和iOSSDK 16
2.1介紹Objective-C 16
2.1.1類定義 17
2.1.2類實現 18
2.1.3多參數的方法 18
2.1.4屬性 19
2.1.5類別 20
2.2Objective-C的重要部分 21
2.2.1協定 21
2.2.2委託 22
2.2.3創建第一個工程 23
2.2.4簡單介紹工程界面 25
2.2.5通過程式體會協定和委託 26
2.2.6記憶體管理 30
2.2.7自動引用計數 32
2.3介紹iOSSDK 32
2.3.1Xcode 32
2.3.2Instruments 32
2.3.3Simulator 33
2.3.4InterfaceBuilder 34
2.4iOS核心部分 34
2.4.1CocoaTouch(可觸摸層) 35
2.4.2Media(媒體層) 37
2.4.3CoreServices(核心服務層) 38
2.4.4CoreOS(核心作業系統層) 38
2.5小結 39
2.6習題 39
第3章iOS開發起航 40
3.1創建項目HelloWorld 40
3.1.1應用程式模板 40
3.1.2新建iPhone工程 44
3.1.3詳解Xcode的各個部分 46
3.1.4詳解項目的各個部分 50
3.2解密InterfaceBuilder 51
3.2.1掀開Nib神秘的面紗 52
3.2.2詳解InterfaceBuilder的組成部分 52
3.2.3在視圖中添加第一個UI控制項 55
3.2.4設定UI控制項的屬性 55
3.2.5變數的關聯 57
3.2.6通過代碼設定屬性 59
3.3為套用添加圖示 61
3.3.1iPhone圖示介紹 61
3.3.2iPad圖示介紹 62
3.3.3圖示的命名和設定 62
3.3.4程式名稱的設定 64
3.4小結 66
3.5習題 66
第2篇UI開發篇
第4章用戶互動基礎 68
4.1介紹ViewController(視圖控制器) 68
4.1.1MVC模型 68
4.1.2ViewController(視圖控制器) 70
4.1.3生命周期 72
4.2使用ViewController編寫計算器 73
4.2.1創建項目PlusMinus 74
4.2.2Button(按鈕) 75
4.2.3TextField(輸入框) 77
4.2.4添加Outlet(連線) 80
4.2.5添加Action(動作) 81
4.2.6設計用戶互動 84
4.2.7編譯並運行程式 85
4.3最佳化互動體驗 86
4.3.1鍵盤關閉 86
4.3.2數字鍵盤 88
4.4詳解Delegate(委託) 91
4.4.1UITextField委託方法 91
4.4.2實現委託功能 92
4.5小結 94
4.6習題 95
第5章掌握更多互動控制項 96
5.1使用ImageView(圖像視圖)和AlertView(警告框) 96
5.1.1ImageView控制項 97
5.1.2UIAlertView控制項 100
5.1.3創建項目ImageSwitch 100
5.1.4設定界面朝向 103
5.1.5設定UIImageView屬性 106
5.1.6數組的概念 108
5.1.7切換圖片 109
5.1.8添加UIAlertView 111
5.2使用Slider(滑塊)和ProgressView(進度條) 113
5.2.1添加UISlider和UIProgressView 113
5.2.2設定控制項屬性 114
5.2.3創建Action(動作)和Outlet(連線) 116
5.2.4實現Action方法 117
5.2.5添加定時器控制 120
5.3使用Switch(開關)和Segment(分段控制項) 122
5.3.1NavigationBar(導航條)的樣式 122
5.3.2添加UISwitch並實現Action方法 124
5.3.3添加UISegment並實現Action方法 127
5.3.4添加“檯燈” 131
5.4小結 132
5.5習題 132
第6章多視圖套用 134
6.1什麼是多視圖 134
6.2多視圖套用的結構 135
6.2.1導航和標籤的多視圖模型 135
6.2.2根視圖(RootView)和內容視圖(ContentView) 137
6.3創建多視圖套用 138
6.3.1創建工程 139
6.3.2創建視圖控制器和Nib檔案 140
6.3.3修改套用委託類(AppDelegate) 141
6.3.4實現根視圖界面與操作 143
6.3.5創建子視圖 145
6.3.6實現視圖的切換 147
6.4委託 150
6.4.1創建protocal類 150
6.4.2代理函式 152
6.4.3實現委託功能 153
6.5動畫效果 157
6.5.1添加視圖轉換動畫特效 157
6.5.2更多效果 159
6.6小結 163
6.7習題 163
第7章TabBarController和PickerView 164
7.1TabBarController 164
7.1.1UITabBarController組成部分 164
7.1.2UITabBarController使用方式 167
7.2創建項目並配置TabBarController 167
7.2.1創建視圖控制器 169
7.2.2創建根視圖控制器 169
7.3使用日期選擇器(UIDatePicker) 172
7.3.1選擇器在iPhone中的使用 172
7.3.2實現日期選擇器 173
7.4使用單組件選擇器(SingleComponentPicker) 176
7.4.1創建Outlet和Action 176
7.4.2實現數據源和委託 177
7.4.3彈出選中的數據 178
7.5多組件選擇器(MultiComponentPicker) 180
7.5.1NSDictionary(字典) 180
7.5.2定義Outlet和Action 181
7.5.3選擇器數據 182
7.5.4實現選擇器的數據顯示 183
7.6小結 187
7.7習題 188
第8章表視圖 189
8.1介紹UITableView(表視圖) 190
8.1.1UITableView(表視圖) 190
8.1.2分組(Grouped)表和無格式(Plain)表 191
8.1.3單元格 192
8.2實現一個簡單的表視圖 193
8.2.1設計視圖 193
8.2.2編寫視圖控制器 195
8.2.3在表單元中添加圖片 199
8.2.4介紹表單元的幾種樣式 201
8.2.5處理行選擇事件 204
8.2.6調整表單元中文字的字型和位置 205
8.2.7設定表單元的高度 206
8.3實現自定義的表單元 208
8.3.1在表單元中添加子視圖 208
8.3.2創建UITableViewCell的子類 213
8.3.3使用Nib實現自定義的表單元 215
8.3.4載入自定義單元格 220
8.4實現支持索引的分組表 222
8.4.1創建視圖 222
8.4.2導入數據 222
8.4.3實現視圖控制器 223
8.4.4為表視圖添加索引支持 226
8.5小結 227
8.6習題 227
第9章NavigationController(導航控制器) 229
9.1介紹導航控制器 229
9.1.1棧的概念 230
9.1.2視圖控制器棧 231
9.2創建導航控制器套用 232
9.2.1套用結構 232
9.2.2添加導航控制器 234
9.2.3根視圖(RootView) 235
9.2.4內容視圖(ContentView) 237
9.3更複雜的表視圖 240
9.3.1第1個子視圖:有詳細內容的表視圖 240
9.3.2第2個子視圖:可選擇單元格的表視圖 245
9.3.3第3個子視圖:可移動單元格的表視圖 249
9.3.4第4個子視圖:可刪除單元格的表視圖 254
9.4小結 260
9.5習題 261
第3篇高級篇
第10章Storyboard 264
10.1支持Storyboard的程式 265
10.1.1創建新工程 265
10.1.2程式結構 266
10.2導航控制器 269
10.2.1在Storyboard中添加導航控制器 269
10.2.2原型單元格和靜態單元格 273
10.3表視圖 274
10.3.1編輯表視圖 274
10.3.2編輯表單元原型 275
10.4視圖的切換 276
10.4.1創建節日列表視圖 276
10.4.2創建出行視圖 278
10.4.3在Storyboard中建立視圖之間的轉換 279
10.5小結 281
10.6習題 281
第11章套用設定和用戶默認項 283
11.1什麼是設定束(SettingBundle) 284
11.2創建項目 284
11.2.1創建工程 285
11.2.2創建設定束 285
11.2.3使用設定束 287
11.3用戶默認設定(NSUserDefaults) 293
11.3.1讀取默認設定值 294
11.3.2修改默認設定值 297
11.4小結 301
11.5習題 302
第12章iOS數據存儲基礎 303
12.1理解套用沙盒 303
12.1.1獲取Documents路徑 304
12.1.2獲取臨時路徑 305
12.1.3獲取Library路徑 305
12.2檔案存儲策略 306
12.2.1iOS5本地存儲限制 306
12.2.2單檔案存儲策略 306
12.2.3多檔案存儲策略 307
12.3使用屬性列表 307
12.3.1創建PropertyList程式 307
12.3.2數據顯示與保存 310
12.3.3數據的讀取 313
12.4類對象的序列化 317
12.4.1NSCoding協定和NSCoder抽象類 317
12.4.2歸檔的概念與NSCopying協定 319
12.4.3數據的歸檔操作 320
12.4.4創建Archiving套用 321
12.4.5修改程式界面和輸出口 324
12.4.6實現數據歸檔 325
12.5使用SQLite3 329
12.5.1打開資料庫 330
12.5.2執行SQL語句 330
12.5.3使用綁定變數 332
12.5.4創建支持SQLite3的套用 333
12.5.5使用SQLite3檢索數據表 338
12.6使用CoreData 340
12.6.1實體(Entity)和託管對象(ManagedObject) 340
12.6.2概念深入 342
12.6.3如何設計數據模型 346
12.6.4支持CoraData的套用 348
12.6.5增加數據刪除 359
12.7小結 362
12.8習題 362
第13章GCD與後台處理進程 363
13.1進程與執行緒的概念 363
13.2什麼是GCD 364
13.2.1Block特性 364
13.2.2Dispatchobject和Dispatchqueue的概念 365
13.2.3創建套用GCDSupport 366
13.3執行緒(NSThread) 370
13.3.1創建執行緒 371
13.3.2同步與加鎖 371
13.3.3與主執行緒互動 373
13.4後台處理進程(BackgroundProcessing) 374
13.4.1套用的生命周期 374
13.4.2套用狀態改變時對應的接口 375
13.4.3詳細介紹套用的各種運行狀態 377
13.4.4處理Inactive狀態 378
13.4.5處理Background狀態 379
13.5創建LocalAlert程式 381
13.5.1新建工程 382
13.5.2開啟定時器和本地提醒 382
13.5.3處理Inactive和後台狀態 386
13.5.4運行程式進行後台測試 386
13.6小結 387
13.7習題 387
第14章觸屏和手勢 389
14.1多觸摸(Multitouch)的概念 390
14.2回響者鏈 390
14.2.1回響者對象 391
14.2.2轉發事件,保持回響的傳遞連續性 391
14.3多觸摸的架構 392
14.44個觸摸通知方法 392
14.4.1觸摸開始 393
14.4.2觸摸滑動 394
14.4.3觸摸結束 394
14.4.4觸摸中斷 395
14.5TouchDect應用程式 395
14.5.1創建程式 395
14.5.2實現觸摸檢測 397
14.5.3運行程式 398
14.6手勢識別 400
14.6.1UIGestureRecognizer類 400
14.6.2輕擊手勢檢測 400
14.6.3輕掃手勢檢測 404
14.6.4捏合手勢檢測 408
14.7自定義手勢 413
14.7.1創建MyGesture應用程式 413
14.7.2介紹Quartz 421
14.7.3Quartz基本概念 422
14.7.4描繪軌跡 422
14.8小結 425
14.9習題 425
第15章CoreLocation定位 427
15.1CoreLocation工作原理 427
15.2位置管理器(LocationManager) 428
15.2.1設定所需的精度 429
15.2.2設定距離篩選器 429
15.2.3啟動位置管理器 430
15.3位置管理器委託 430
15.3.1獲取位置更新 430
15.3.2使用CLLocation獲取位置信息 430
15.3.3錯誤通知 432
15.4使用CoreLocation 433
15.5小結 439
15.6習題 439
第16章重力感應和加速計 440
16.1加速計的物理原理 441
16.2獲取朝向 442
16.3訪問加速計 443
16.3.1UIAcceleration加速計 444
16.3.2實現accelerometer:didAccelerate:方法 446
16.4搖動換膚 448
16.4.1創建ChangeSkin程式 449
16.4.2實現換膚功能 450
16.5滾球小遊戲 451
16.5.1實現主視圖控制器 451
16.5.2編寫BallView 452
16.6了解CoreMotion 458
16.7小結 460
16.8習題 460
第17章攝像頭和相冊 461
17.1圖像選取器 462
17.1.1UIImagePickerController 462
17.1.2啟動UIImagePickerController 463
17.2實現圖像選取器控制器委託 464
17.3實際測試照相機和庫 465
17.3.1創建MyCamera應用程式 465
17.3.2實現拍照 466
17.3.3真機上測試本程式 469
17.3.4打開iPhone相冊 471
17.4小結 474
17.5習題 474
第18章多媒體:音頻和視頻 475
18.1iPhone音頻 475
18.1.1短音頻播放技術 475
18.1.2長音頻播放技術 476
18.1.3佇列式播放技術 477
18.1.4跨平台3D播放技術 478
18.2創建MusicPlayer程式 478
18.2.1開發程式框架 479
18.2.2使用SystemSoundServices 482
18.2.3使用AVAudioPlayer 485
18.3錄音 493
18.3.1如何錄音 493
18.3.2補充MusicPlayer程式 494
18.3.3實現AVAudioRecorderDelegate代理方法 498
18.3.4播放錄音 499
18.3.5測試錄音功能 499
18.4iPhone視頻 500
18.4.1多媒體播放器類 500
18.4.2MPMoviePlayerController的使用 501
18.5創建VideoPlayer程式 503
18.5.1添加設定束 503
18.5.2讀取播放器屬性 506
18.5.3實現視頻播放 509
18.5.4處理狀態變化 512
18.5.5運行程式播放視頻 515
18.6小結 517
18.7習題 517
第19章本地化 518
19.1本地化體系結構 519
19.2本地化原則 519
19.3使用字元串檔案 520
19.4創建Localize應用程式 521
19.4.1本地化字元串 522
19.4.2查看當前區域設定 527
19.4.3本地化nib檔案 531
19.4.4本地化圖像 534
19.4.5本地化應用程式圖示與名稱 536
19.5小結 538
19.6習題 539
第4篇實戰篇
第20章創建iPhone和iPad都兼容的程式 542
20.1開發通用應用程式 542
20.1.1創建通用模板 543
20.1.2需要注意的地方 544
20.2創建通用應用程式 548
20.2.1設計程式界面 548
20.2.2創建並連線IBOutlet 550
20.2.3獲取設備信息 551
20.3擴展通用應用程式 552
20.3.1創建iPad視圖控制器類 552
20.3.2快速添加輸出口 553
20.3.3實現程式功能 555
20.4創建多目標程式 556
20.4.1添加新的Target 557
20.4.2配置程式 558
20.5小結 559
20.6習題 559
第21章用Three20實現的食譜APP 560
21.1什麼是Three20 560
21.1.1下載原始碼 560
21.1.2結構分析 561
21.2功能的優勢 563
21.3導入Three20 566
21.3.1添加Three20.xcodeproj 566
21.3.2添加Three20.bundle 568
21.3.3添加必須的靜態程式庫 568
21.3.4添加目標依賴項 569
21.3.5修改HeaderSearchPaths 571
21.3.6修改OtherLinkerFlags 572
21.3.7引入頭檔案 573
21.4認識TTNavigator 573
21.4.1使用方法 573
21.4.2映射表 575
21.5開發UseThree20應用程式——食譜APP 576
21.5.1使用TTTableViewController 576
21.5.2使用TTViewController類 581
21.5.3修改AppDelegate類 584
21.6補充說明 587
21.6.1進展指示符MBProgressHUD 587
21.6.2網路請求庫ASIHttpRequest 588
21.6.3網路圖片處理 588
21.6.4JSONFramework 588
21.7小結 589