《iOS 5基礎教程》最新升級版:精通iOS開發

內容簡介:

iOS 是如今最炙手可熱的移動平臺,蘋果公司為其推出了強大的軟件開發工具包iOS SDK。本書是一部關于iOS 應用開發的基礎教程,內容翔實、語言生動。幾位作者結合大量實例,循序漸進地講解了適用于iPhone、iPad 開發的基本流程。新版介紹強大的iOS 6 操作系統,涵蓋了Xcode 4 以來的新功能,其中最值得注意的便是集合視圖,本書將以全新章節詳細講述。全書所有項目均使用Xcode 4 重新創建,讓開發者全面感受Xcode 4 帶來的振奮人心的新變化。

本書具有較強的通用性,iOS 開發新手可通過學習本書快速入門進階,經驗豐富的iOS 開發人員也能從中找到令人耳目一新的內容。

亞馬遜詳情
《iOS 5基礎教程》

作者簡介:

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:dengqiang@outlook.com。

武海峰

Linux系統工程師,主要關注GNU/Linux和移動互聯應用,熱衷于開源軟件。曾在商業Linux廠商和移動互聯網創業公司任職,從事Android系統集成、商業Linux發行版集成及移動互聯網產品開發。Email:dinny.wu@gmail.com。

目錄:

第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  UINavigationController  120
6.3.1  創建視圖控制器和nib文件  121
6.3.2  修改應用程序委托  123
6.3.3  修改BIDSwitchView- Controller.h  124
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.xib  143
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文件加載UITableViewCell  199

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個部分組成的分層應用程序:Nav  218

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內嵌的SQLite3  364

13.5.1  創建或打開數據庫  365
13.5.2  綁定變量  366
13.5.3  SQLite3應用程序  367
13.6  使用Core Data  373
13.6.1  實體和托管對象  374
13.6.2  Core Data應用程序  378

13.7  小結  386

第14章 iCloud之旅  387

14.1  使用UIDocument管理文檔存儲  387
14.1.1  構建TinyPix  388
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 profile  408
14.2.2  啟用iCloud授權  409
14.2.3  如何查詢  409
14.2.4  保存在哪里  411
14.2.5  將首選項保存到iCloud  411

14.3  小結  412

第15章 Grand Central Dispatch和后臺處理  414

15.1  Grand Central Dispatch  414

15.2  SlowWorker簡介  415
15.3  線程基礎知識  418
15.4  工作單元  419
15.5  GCD:低級隊列  419
15.5.1  傻瓜式操作  420
15.5.2  改進SlowWorker  421
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 Kit  506

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 Location  511

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-

Controller  545

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  創建LocalizeMe  568

22.3.2  測試LocalizeMe  570

22.3.3  本地化nib文件  571

22.3.4  本地化圖像  575

22.3.5  生成并本地化字符串文件  577

22.3.6  Base Internationalization  579

22.3.7  應用顯示名稱的本地化  582

22.4  小結  583

附錄A  未來之路  584

收藏
點贊

復制本文鏈接 文章為作者獨立觀點不代表優設網立場,未經允許不得轉載。