精通iOS開發(第5版)

創建檔案1417.3.2 聯線28510.4.1 創建項目32412.2.2

內容介紹

還在iPhone和iPad套用開發的大門前徘徊?還是已經投身iOS套用開發陣營,但希望迅速提升自己的功力?選擇本書絕對能令你驚喜連連。四位作者均是資深移動開發專家,具有豐富的Mac、iOS、Cocoa及Objective-C開發經驗。作者將多年的實戰經驗與智慧感悟匯集成本書,旨在幫助沒有經驗的讀者順利叩開iOS套用開發的大門,幫助有經驗的讀者迅速提升功力,從而在iOS開發的道路上所向披靡。
本書自問世以來就受到讀者的交口讚譽,被奉為學習iOS平台開發的不二之選。中文版累計銷量已超過5萬冊。新版針對iOS 6和新的SDK做了大幅修訂,力求使新老讀者都能有最大收穫。作者重寫了所有項目代碼,使之兼容新舊SDK,還專門新增一章介紹iOS 6的新特性集合視圖,並對原有的各章內容進行更新,從而反映出技術的最新發展動態。
還等什麼?立即展卷閱讀,加入iOS開發的行列吧!

作者介紹

作者簡介:
David Mark
經驗豐富的Mac技術開發專家,技術圖書作者。他撰寫過許多Mac平台和iOS開發方面的暢銷書,比如《iPad開發基礎教程》(中文版已由人民郵電出版社出版)。David還是iOS/Android開發公司MartianCraft的聯合創始人。
Jack Nutting
資深蘋果移動開發技術專家、技術圖書作者。Objective-C和Cocoa框架的堅定擁護者。《iPad開發基礎教程》合著者。個人部落格www.nuthole.com。
Jeff LaMarche
資深Mac與iOS開發人員,擁有20多年開發經驗。他是MacTech Magazine和蘋果公司開發人員網站的專欄作家。Jeff關於iOS開發的博文廣受歡迎,其部落格地址為www.iphonedevelopment.blogspot.com。
Fredrik Olsson
具有豐富的Cocoa和iPhone開發經驗,從業經歷豐富,從實時彙編到企業版Java開發。他是Objective-C和Cocoa框架的堅定擁護者。
譯者簡介:
鄧強
iOS工程師,常年關注網際網路行業,對網際網路產品和技術興趣濃厚,Apple粉、Google粉、Amazon粉。職業生涯的前幾年一直從事金融行業軟體系統開發,後來不顧一切投身網際網路。目前在一個新成立的網際網路創業小團隊任職。Email:[email protected]
武海峰
Linux系統工程師,主要關注GNU/Linux和移動互聯套用,熱衷於開源軟體。曾在商業Linux廠商和移動網際網路創業公司任職,從事Android系統集成、商業Linux發行版集成及移動網際網路產品開發。Email:[email protected]

作品目錄

目 錄
第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  只有一個視窗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  準備開始吧9
第2章 創建項目10
2.1  在Xcode中創建項目10
2.1.1  Xcode工作區視窗14
2.1.2  深入研究項目21
2.2  Interface Builder簡介23
2.2.1  nib檔案的構成24
2.2.2  庫25
2.2.3  在視圖中添加標籤26
2.2.4  屬性修改29
2.3  畫龍點睛——美化iPhone套用30
2.4  小結34
第3章 實現基本互動35
3.1  MVC方法36
3.2  創建項目36
3.3  視圖控制器37
3.3.1  輸出口和動作38
3.3.2  清理視圖控制器41
3.3.3  設計用戶界面41
3.3.4  運行套用50
3.3.5  樣式文本50
3.4  應用程式委託52
3.5  小結55
第4章 更豐富的用戶界面56
4.1  滿是控制項的螢幕56
4.2  活動控制項、靜態控制項和被動控制項58
4.3  創建應用程式59
4.4  實現圖像視圖和文本欄位59
4.4.1  添加圖像視圖59
4.4.2  調整圖像視圖的大小62
4.4.3  設定視圖屬性63
4.4.4  添加文本欄位65
4.4.5  創建和關聯輸出口70
4.5  關閉鍵盤72
4.5.1  輸入完成後關閉鍵盤73
4.5.2  通過觸摸背景關閉鍵盤74
4.5.3  添加滑塊和標籤76
4.5.4  添加頂部約束78
4.5.5  創建並關聯動作方法和輸出口78
4.5.6  實現動作方法79
4.6  實現開關、按鈕和分段控制項80
4.7  實現分段控制項的動作方法84
4.8  實現操作表單和警告視圖85
4.8.1  遵從操作表單委託方法85
4.8.2  顯示操作表單85
4.9  美化按鈕88
4.9.1  viewDidLoad方法89
4.9.2  控制項狀態90
4.9.3  可拉伸圖像90
4.10  小結91
第5章 自動旋轉和自動調整大小92
5.1  自動旋轉機制93
5.1.1  點、像素和Retina顯示屏93
5.1.2  自動旋轉的實現方式94
5.2  選擇視圖支持的方向95
5.2.1  套用級支持的方向95
5.2.2  單個控制器的旋轉支持96
5.3  使用約束設計界面98
5.3.1  覆蓋默認的約束100
5.3.2  與螢幕等寬的按鈕101
5.4  旋轉時重構視圖103
5.4.1  創建並關聯輸出口104
5.4.2  旋轉時移動按鈕105
5.5  切換視圖106
5.5.1  設計兩個視圖108
5.5.2  實現視圖切換109
5.5.3  修改輸出口集合111
5.6  小結112
第6章 多視圖應用程式113
6.1  多視圖應用程式的常見類型113
6.2  多視圖應用程式的體系結構117
6.2.1  根控制器119
6.2.2  內容視圖剖析119
6.3  UINavigationController120
6.3.1  創建視圖控制器和nib檔案121
6.3.2  修改應用程式委託123
6.3.3  修改BIDSwitchView- Controller.h124
6.3.4  添加視圖控制器124
6.3.5  構建帶有工具列的視圖126
6.3.6  編寫根視圖控制器128
6.3.7  實現內容視圖131
6.3.8  轉換過程的動畫效果134
6.4  小結136
第7章 標籤欄與選取器137
7.1  Pickers應用程式138
7.2  委託和數據源140
7.3  建立標籤欄框架141
7.3.1  創建檔案141
7.3.2  添加根視圖控制器142
7.3.3  創建TabBarController.xib143
7.3.4  初次運行149
7.4  實現日期選取器150
7.5  實現單組件選取器153
7.5.1  聲明輸出口和動作方法153
7.5.2  構建視圖153
7.5.3  將控制器實現為數據源和委託155
7.6  實現多組件選取器158
7.6.1  聲明輸出口和動作方法158
7.6.2  構建視圖159
7.6.3  實現控制器159
7.7  實現依賴組件162
7.8  使用自定義選取器創建一個簡單遊戲168
7.8.1  編寫控制器頭檔案168
7.8.2  構建視圖169
7.8.3  添加圖像資源170
7.8.4  實現控制器170
7.8.5  最後的細節173
7.8.6  連結Audio Toolbox框架177
7.9  小結178
第8章 表視圖簡介179
8.1  表視圖基礎179
8.1.1  表視圖和表視圖單元180
8.1.2  分組表和無格式表180
8.2  實現一個簡單表181
8.2.1  設計視圖182
8.2.2  編寫控制器182
8.2.3  添加一個圖像186
8.2.4  表視圖單元樣式187
8.2.5  設定縮進級別189
8.2.6  處理行的選擇190
8.2.7  更改字型大小和行高192
8.3  定製表視圖單元193
8.3.1  向表視圖單元添加子視圖193
8.3.2  創建UITableViewCell子類194
8.3.3  從nib檔案載入UITableViewCell199
8.4  分組分區和索引分區202
8.4.1  構建視圖202
8.4.2  導入數據203
8.4.3  實現控制器204
8.4.4  添加索引207
8.5  實現搜尋欄208
8.6  小結215
第9章 導航控制器和表視圖216
9.1  導航控制器216
9.1.1  棧的性質216
9.1.2  控制器棧217
9.2  由6個部分組成的分層應用程式:Nav218
9.2.1  子控制器219
9.2.2  Nav應用程式骨架223
9.2.3  向項目中添加圖像229
9.2.4  第一個子控制器:展開按鈕視圖229
9.2.5  第二個子控制器:檢查表237
9.2.6  第三個子控制器:表行上的控制項242
9.2.7  第四個子控制器:可移動的行248
9.2.8  第五個子控制器:可刪除的行252
9.2.9  第六個子控制器:可編輯的詳細面板257
9.2.10  其他內容272
9.3  小結273
第10章 故事板274
10.1  創建一個簡單的故事板274
10.2  動態原型單元277
10.2.1  使用故事板的動態表內容277
10.2.2  編輯原型單元278
10.2.3  實現表視圖數據源279
10.2.4  它會載入嗎281
10.3  靜態單元282
10.3.1  實現靜態單元282
10.3.2  實現表視圖數據源283
10.4  聯線285
10.4.1  創建聯線導航285
10.4.2  設計故事板286
10.4.3  第一個視圖轉換287
10.4.4  更為實用的任務列表288
10.4.5  查看任務詳情289
10.4.6  設定更多聯線290
10.4.7  從列表中傳遞任務291
10.4.8  處理任務細節292
10.4.9  回傳詳細信息293
10.4.10  讓列表獲取詳細信息294
10.4.11  小結295
第11章 iPad開發注意事項296
11.1  分割視圖和浮動視窗296
11.1.1  創建SplitView項目298
11.1.2  在故事板中定義結構300
11.1.3  使用代碼定義功能301
11.2  顯示總統信息307
11.3  創建浮動視窗313
11.4  小結319
第12章 應用程式設定及用戶默認設定320
12.1  設定捆綁包入門320
12.2  AppSettings應用程式321
12.2.1  創建項目324
12.2.2  使用設定捆綁包325
12.2.3  讀取應用程式中的設定338
12.2.4  在應用程式中修改默認設定342
12.2.5  註冊默認值344
12.2.6  保證設定有效345
12.3  小結348
第13章 數據持久化基礎知識349
13.1  應用程式的沙盒349
13.1.1  獲取Documents目錄350
13.1.2  獲取tmp目錄351
13.2  檔案保存策略351
13.2.1  單檔案持久化352
13.2.2  多檔案持久化352
13.3  屬性列表352
13.3.1  屬性列表序列化352
13.3.2  Persistence應用程式的第一個版本353
13.4  對模型對象進行歸檔358
13.4.1  遵循NSCoding協定358
13.4.2  實現NSCopying協定360
13.4.3  對數據對象進行歸檔和取消歸檔360
13.4.4  歸檔應用程式361
13.5  使用iOS內嵌的SQLite3364
13.5.1  創建或打開資料庫365
13.5.2  綁定變數366
13.5.3  SQLite3應用程式367
13.6  使用Core Data373
13.6.1  實體和託管對象374
13.6.2  Core Data應用程式378
13.7  小結386
第14章 iCloud之旅387
14.1  使用UIDocument管理文檔存儲387
14.1.1  構建TinyPix388
14.1.2  創建BIDTinyPix-Document類388
14.1.3  主代碼391
14.1.4  初始故事板397
14.1.5  創建BIDTinyPixView類400
14.1.6  設計詳細視圖403
14.2  添加iCloud支持407
14.2.1  創建provisioning profile408
14.2.2  啟用iCloud授權409
14.2.3  如何查詢409
14.2.4  保存在哪裡411
14.2.5  將首選項保存到iCloud411
14.3  小結412
第15章 Grand Central Dispatch和後台處理414
15.1  Grand Central Dispatch414
15.2  SlowWorker簡介415
15.3  執行緒基礎知識418
15.4  工作單元419
15.5  GCD:低級佇列419
15.5.1  傻瓜式操作420
15.5.2  改進SlowWorker421
15.6  後台處理426
15.6.1  應用程式生命周期427
15.6.2  狀態更改通知427
15.6.3  創建State Lab項目428
15.6.4  執行狀態的變化430
15.6.5  利用執行狀態更改431
15.6.6  處理不活動狀態432
15.6.7  處理後台狀態436
15.7  小結443
第16章 使用Quartz和OpenGL繪圖444
16.1  圖形世界的兩個視圖444
16.2  Quartz 2D繪圖方法445
16.2.1  Quartz 2D的圖形上下文445
16.2.2  坐標系446
16.2.3  指定顏色447
16.2.4  在上下文中繪製圖像449
16.2.5  繪製形狀:多邊形、直線和曲線449
16.2.6  Quartz 2D工具採樣器:模式、梯度、虛線模式450
16.3  QuartzFun應用程式451
16.3.1  建立QuartzFun應用程式451
16.3.2  添加Quartz 2D的繪圖代碼460
16.3.3  最佳化QuartzFun應用程式465
16.4  GLFun應用程式468
16.4.1  建立GLFun應用程式468
16.4.2  創建BIDGLFunView類469
16.4.3  更新BIDView-Controller類475
16.4.4  更新nib檔案476
16.4.5  完成GLFun應用程式476
16.5  小結476
第17章 輕擊、觸摸和手勢477
17.1  多點觸控術語477
17.2  回響者鏈478
17.2.1  回響事件478
17.2.2  轉發事件:保持回響者鏈的活動狀態479
17.3  多點觸控體系結構480
17.4  4個手勢通知方法480
17.5  TouchExplorer應用程式481
17.6  Swipes應用程式485
17.6.1  自動手勢識別488
17.6.2  實現多指滑動489
17.7  檢測多次輕擊491
17.8  檢測捏合和旋轉496
17.9  自定義手勢500
17.9.1  CheckPlease應用程式501
17.9.2  CheckPlease的觸摸方法503
17.10  小結505
第18章 Core Location和Map Kit506
18.1  位置管理器506
18.1.1  設定精度507
18.1.2  設定距離篩選器507
18.1.3  啟動位置管理器508
18.1.4  合理使用位置管理器508
18.2  位置管理器委託508
18.2.1  獲取位置更新508
18.2.2  使用CLLocation獲取緯度和經度508
18.2.3  錯誤通知510
18.3  試用Core Location511
18.4  將移動路線展現在地圖上516
18.5  小結519
第19章 陀螺儀和加速計520
19.1  加速計物理學520
19.2  不要忘記旋轉521
19.3  Core Motion和動作管理器521
19.3.1  基於事件的動作522
19.3.2  主動動作訪問527
19.3.3  加速計結果529
19.4  檢測搖動530
19.4.1  內嵌的搖動檢測531
19.4.2  搖動與擊碎531
19.5  將加速計用做方向控制器536
19.5.1  滾彈珠程式537
19.5.2  實現BIDBallView類539
19.5.3  計算彈珠運動542
19.6  小結544
第20章 照相機和照片庫545
20.1  圖像選取器和UIImagePicker-
Controller545
20.2  實現圖像選取器控制器委託547
20.3  實際測試照相機和照片庫548
20.3.1  設計界面549
20.3.2  實現照相機視圖控制器550
20.4  小結553
第21章 集合視圖554
21.1  創建DialogViewer項目554
21.2  視圖控制器類555
21.3  自定義單元555
21.4  配置視圖控制器558
21.5  內容單元559
21.6  實現流式布局560
21.7  分區標題視圖562
21.8  小結563
第22章 應用程式本地化564
22.1  本地化體系結構564
22.2  字元串檔案565
22.2.1  字元串檔案566
22.2.2  本地化的字元串宏566
22.3  現實中的iOS:本地化應用程式567
22.3.1  創建LocalizeMe568
22.3.2  測試LocalizeMe570
22.3.3  本地化nib檔案571
22.3.4  本地化圖像575
22.3.5  生成並本地化字元串檔案577
22.3.6  Base Internationalization579
22.3.7  套用顯示名稱的本地化582
22.4  小結583
附錄A  未來之路584

相關詞條

熱門詞條

聯絡我們