譯者序
序
前言
第一部分 入門
第1章 你的第一個應用程序 1
1.1 創建“Hello World”項目 1
1.2 在屏幕上顯示文字 5
1.3 說“Hello" 6
1.4 小結 10
第2章 Xcode入門 11
2.1 集成開發環境 11
2.2 工作區窗口 12
2.2.1 工具欄 12
2.2.2 導航區 12
2.2.3 編輯區 13
2.2.4 工具區 14
2.2.5 調試區 15
2.3 首選項 15
2.3.1 字體與顔色 16
2.3.2 文本編輯 16
2.3.3 按鍵綁定首選項 18
2.3.4 代碼補全 19
2.4 開發者文檔 20
2.5 編輯器 21
2.6 項目設置 22
2.7 方案 23
2.8 組織者 24
2.9 其他Xcode工具 25
2.10 小結 25
第3章 Interface Builder入門 26
3.1 Interface Builder 26
3.2 IB怎樣工作 27
3.3 著手使用IB 27
3.3.1 選取與復製對象 29
3.3.2 對齊對象 29
3.3.3 布局矩形框 31
3.3.4 修改狀態 31
3.4 將NIB與代碼關聯起來 33
3.4.1 在代碼中定義插座變量 33
3.4.2 使用輔助編輯器 36
3.5 故事闆 37
3.6 小結 37
第4章 Objective-C入門 38
4.1 什麼是Objective-C 38
4.2 玩轉Objective-C 39
4.2.1 動手寫代碼 40
4.2.2 對象 41
4.2.3 類 42
4.2.4 NSObject 43
4.2.5 接口 43
4.2.6 實例變量 44
4.2.7 聲明屬性 45
4.2.8 方法 47
4.2.9 實現 47
4.2.10 閤成 48
4.2.11 init 49
4.2.12 super 49
4.2.13 flip 49
4.2.14 選擇器 50
4.2.15 點語法 51
4.3 CoinTosser類的用法 51
4.4 內存管理 52
4.5 小結 53
第5章 Cocoa入門 54
5.1 Cocoa棧 54
5.2 Foundation 55
5.2.1 數據類型 56
5.2.2 集閤類 60
5.2.3 工具類與函數 61
5.3 UIKit 65
5.3.1 UIApplication 65
5.3.2 UIWindow 65
5.3.3 UIScreen 65
5.3.4 UIView 65
5.3.5 UIViewController 65
5.3.6 UIWebView 65
5.3.7 UILabel 66
5.3.8 UITextField 66
5.3.9 UITextView 66
5.3.10 UIButton 66
5.3.11 UITableView與
UITableViewCell 67
5.3.12 UIScrollView 67
5.3.13 UIPageControl 67
5.3.14 UIPickerView 67
5.3.15 UIDatePicker 67
5.3.16 UISwitch 67
5.3.17 UISlider 68
5.3.18 UIMenuController和
UIMenuItem 68
5.3.19 UIImage 68
5.3.20 UIImageView 68
5.3.21 UINavigationBar 68
5.3.22 UINavigationController 69
5.3.23 UIToolbar 69
5.3.24 UITabBar 69
5.3.25 UIBarButtonItem 69
5.3.26 UISegmentedControl 70
5.4 Cocoa中常見的設計模式 70
5.4.1 模型-視圖-控製器模式 70
5.4.2 目標-動作模式 71
5.5 小結 71
第6章 為iPad配置信息 72
6.1 關於iOS配置門戶 72
6.2 提供信息的過程:概括說明 73
6.2.1 設備ID是什麼 73
6.2.2 什麼是應用程序ID 74
6.2.3 什麼是開發信息提供概述 75
6.3 設立開發用的機器 76
6.3.1 請求開發許可證 76
6.3.2 提交CSR以求批準 78
6.3.3 下載並安裝許可證 79
6.4 配置設備 80
6.5 使用iOS配置門戶 81
6.5.1 添加設備ID 82
6.5.2 添加應用程序ID 83
6.5.3 創建開發信息提供概述 84
6.5.4 下載開發信息提供概述 85
6.5.5 安裝開發信息提供概述 86
6.6 小結 86
第7章 應用程序設計 87
7.1 定義應用程序 87
7.1.1 應用程序名稱 88
7.1.2 應用程序概述 88
7.1.3 功能清單 88
7.1.4 目標用戶 89
7.1.5 再度審視功能清單 90
7.1.6 有競爭關係的産品 90
7.1.7 App Charter示例 90
7.2 用戶界麵構思 92
7.2.1 閱讀HIG(iOS人機
界麵指南) 92
7.2.2 使你的應用程序
“令人心動” 92
7.2.3 為設備設計 93
7.2.4 人們使用iOS設備與使用
網頁或桌麵計算機的方式
不一樣 93
7.2.5 戴上工業設計師的帽子 94
7.2.6 比喻 94
7.2.7 聲音效果 94
7.2.8 定製現有的控件 95
7.2.9 聘請設計師 96
7.3 原型圖 96
7.3.1 什麼是原型圖 96
7.3.2 要對什麼設計原型圖 97
7.3.3 使用的工具 97
7.4 建立原型 100
7.4.1 什麼是原型 100
7.4.2 怎樣創建原型應用程序 101
7.5 小結 101
第二部分 構建PhotoWheel
第8章 創建主從復閤應用程序 103
8.1 構建原型應用程序 103
8.1.1 什麼是分割視圖控製器 104
8.1.2 創建新的項目 105
8.1.3 使用模擬器 105
8.2 更進一步的觀察 106
8.2.1 項目結構 107
8.2.2 應用程序委派 107
8.2.3 啓動選項 111
8.2.4 其他UIApplicationDelegate
方法 112
8.3 UISplitViewController詳解 112
8.3.1 指定分割視圖控製器的委派 115
8.3.2 細節視圖控製器 116
8.3.3 主視圖控製器 116
8.4 小結 117
8.5 習題 117
第9章 使用錶格視圖 118
9.1 首要的事情 118
9.2 深層剖析 120
9.2.1 UITableView 120
9.2.2 UITableViewCell 121
9.2.3 UITableViewDelegate 121
9.2.4 UITableViewDataSource 121
9.2.5 UITableViewController 121
9.3 操作錶格視圖 121
9.3.1 一個簡單的模型 121
9.3.2 顯示數據 123
9.3.3 添加數據 127
9.3.4 編輯數據 139
9.3.5 刪除數據 143
9.3.6 重排數據 144
9.3.7 選取數據 145
9.4 小結 147
9.5 習題 148
第10章 用視圖工作 149
10.1 定製視圖 149
10.2 輪狀視圖 150
10.3 鏇轉木馬視圖 156
10.4 Photo Wheel視圖單元 161
10.5 小結 164
10.6 習題 164
第11章 使用觸屏手勢 165
11.1 觸摸手勢簡介 165
11.1.1 預定義的觸屏手勢 166
11.1.2 手勢種類 166
11.1.3 怎樣使用手勢識彆類 166
11.2 定製觸屏手勢 169
11.2.1 創建撥動手勢識彆類 170
11.2.2 撥動手勢識彆類的用法 172
11.3 小結 176
11.4 習題 176
第12章 添加照片 177
12.1 兩種途徑 177
12.1.1 Assets Library 177
12.1.2 圖片撿拾控製器 178
12.2 圖片撿拾控製器的用法 179
12.2.1 使用動作單 181
12.2.2 UIImagePickerController的
用法 184
12.2.3 保存至攝像頭膠捲 187
12.3 小結 188
12.4 習題 188
第13章 數據持久化 189
13.1 數據模型 189
13.1.1 照片 189
13.1.2 相冊 189
13.1.3 前瞻性考慮 189
13.2 使用屬性清單來構建模型 190
13.2.1 什麼是屬性清單 190
13.2.2 建立數據模型 190
13.2.3 讀取和保存相冊 191
13.2.4 嚮相冊添加新照片 195
13.2.5 顯示相冊中的照片 198
13.3 使用Core Data構建模型 200
13.3.1 什麼是Core Data 200
13.3.2 托管對象和實體描述 200
13.3.3 托管對象語境 201
13.3.4 持久存儲和持久存儲
協調器 202
13.3.5 嚮PhotoWheelPrototype
添加Core Data 202
13.3.6 添加Core Data框架 202
13.3.7 建立Core Data棧 203
13.4 在PhotoWheel中
使用Core Data 206
13.4.1 Core Data的模型編輯器 206
13.4.2 添加實體 206
13.4.3 創建NSManagedObject
子類 209
13.5 嚮模型對象添加定製代碼 211
13.5.1 用Core Data讀取和保存
相冊 215
13.5.2 使用Core Data嚮相冊
添加新照片 218
13.5.3 用Core Data顯示相冊中
的照片 220
13.6 直接使用SQLite 221
13.7 小結 221
13.8 習題 221
第14章 Xcode中的故事闆 222
14.1 什麼是故事闆 222
14.1.1 故事闆的用法 223
14.1.2 場景 224
14.1.3 過渡 224
14.2 對PhotoWheel創作故事闆 225
14.2.1 工作區 225
14.2.2 添加主故事闆 226
14.2.3 設置UIMainStoryboardFile 227
14.2.4 更新AppDelegate 228
14.2.5 添加圖片 228
14.2.6 應用程序圖標 229
14.2.7 初始的視圖控製器 229
14.2.8 另一個場景 230
14.2.9 創建過渡 232
14.3 小結 233
14.4 習題 233
第15章 視圖控製器詳解 234
15.1 實現視圖控製器 234
15.2 過渡 236
15.2.1 創建定製過渡 237
15.2.2 設置過渡 237
15.2.3 實現定製過渡 239
15.2.4 編譯之前的工作 241
15.3 定製彈齣轉換 243
15.4 容器視圖控製器 245
15.4.1 創建容器視圖控製器 246
15.4.2 添加子場景 246
15.4.3 添加子視圖控製器 248
15.4.4 修正定製的推式過渡 251
15.5 小結 251
15.6 習題 252
第16章 構造主屏幕 253
16.1 重用原型代碼 253
16.1.1 復製文件 254
16.1.2 Core Data模型 255
16.1.3 WheelView要做的修改 260
16.2 顯示相冊 270
16.2.1 實現相冊集視圖控製器 271
16.2.2 設置托管對象語境 277
16.2.3 添加相冊 278
16.3 管理相冊 279
16.3.1 選取相冊 279
16.3.2 對相冊起名 283
16.3.3 修正工具欄的顯示 288
16.3.4 刪除相冊 289
16.4 更美觀的相冊縮略圖 291
16.5 添加照片 294
16.6 顯示照片 299
16.6.1 使用GridView類 308
16.6.2 構建圖片柵格視圖單元 312
16.7 小結 315
16.8 習題 315
第17章 創建照片瀏覽器 316
17.1 使用滾動視圖 316
17.2 啓動照片瀏覽器 324
17.3 添加Chrome效果 332
17.4 放大縮小 336
17.5 刪除照片 342
17.6 小結 348
17.7 習題 348
第18章 支持設備鏇轉 349
18.1 怎樣支持鏇轉功能 349
18.1.1 所支持的設備放置模式 350
18.1.2 使用自動尺寸調整功能 350
18.2 自定義鏇轉 351
18.2.1 支持鏇轉相冊 355
18.2.2 鏇轉相冊場景 355
18.2.3 調整WheelView類的代碼 356
18.2.4 鏇轉About視圖 358
18.2.5 鏇轉照片瀏覽器 358
18.3 修正麻煩點 358
18.3.1 修正照片瀏覽器 358
18.3.2 修正主屏幕 363
18.4 啓動畫麵 365
18.5 小結 367
18.6 習題 367
第19章 用AirPrint打印 368
19.1 打印功能如何工作 368
19.1.1 打印中心Print Center 368
19.1.2 能打印的前提 369
19.1.3 打印API 369
19.2 嚮PhotoWheel添加打印功能 369
19.3 小結 372
19.4 習題 372
第20章 發送電子郵件 373
20.1 工作原理 373
20.2 SendEmailController類 374
20.2.1 引入SendEmailController類 375
20.2.2 SendEmailController的
用法 378
20.3 小結 383
20.4 習題 383
第21章 Web服務 384
21.1 基礎知識 384
21.2 Flickr 385
21.2.1 嚮PhotoWheel加入Flickr
支持 386
21.2.2 更新Flickr View Controller
Scene 388
21.2.3 顯示Flickr場景 389
21.2.4 包裝Flickr應用編程接口 391
21.2.5 異步下載照片 397
21.2.6 FlickrViewController的
實現 402
21.3 其他事宜 410
21.4 還缺什麼 411
21.5 小結 411
21.6 習題 411
第22章 與iCloud同步 412
22.1 同步使事情變得簡單 412
22.2 iCloud的各種概念 412
22.2.1 文件協調器和錶現器 413
22.2.2 UIDocument與UIManagedDocument 413
22.2.3 無所不在持久存儲 414
22.3 為設備提供信息的迴顧 414
22.3.1 配置應用程序ID 414
22.3.2 為iCloud提供信息 415
22.3.3 配置iCloud權利 416
22.4 對PhotoWheel的iCloud考慮 418
22.4.1 同步要做得恰到好處 418
22.4.2 使用瞬態Core Data特性 419
22.5 更新PhotoWheel以支持
iCloud 419
22.6 用iCloud來同步照片 423
22.6.1 使持久存儲協調器
無所不在 423
22.6.2 從iCloud接收變更 427
22.7 小結 430
22.8 習題 431
第23章 用AirPlay放映幻燈片 432
23.1 外部顯示選項 432
23.2 應用程序對外部顯示器的
要求 432
23.3 外部顯示器的應用編程接口 433
23.4 嚮PhotoWheel添加幻燈片
放映 434
23.4.1 更新故事闆 434
23.4.2 添加幻燈片放映顯示器 435
23.5 管理外部顯示器 437
23.6 推進到下一張照片 440
23.7 添加幻燈片放映的用戶界麵
控件 442
23.8 更新照片瀏覽器 444
23.9 測試和調試時的注意事項 445
23.10 添加對AirPlay設備的支持 446
23.11 AirPlay的運用 447
23.12 小結 448
23.13 習題 448
第24章 Core Image的視覺特效 449
24.1 Core Image的概念 449
24.2 CIFilter 450
24.2.1 濾鏡類型 451
24.2.2 CIFilter的使用 451
24.3 圖片分析 452
24.3.1 自動增強 453
24.3.2 臉部識彆 454
24.4 為PhotoWheel添加Core Image
特效 454
24.4.1 新建委派方法 455
24.4.2 濾鏡管理的實例變量 456
24.4.3 用戶界麵的添加 456
24.4.4 創建CIFilter特效 461
24.4.5 濾鏡的運用 465
24.4.6 圖片自動增強功能的實現 466
24.4.7 實現臉部縮放 466
24.4.8 其他必要的方法 468
24.5 小結 469
24.6 習題 469
第三部分 最後的潤色
第25章 調試 471
25.1 瞭解問題所在 471
25.1.1 問題齣在哪裏 471
25.1.2 重現缺陷 471
25.2 調試的概念 472
25.3 在Xcode中調試 472
25.3.1 設置和管理斷點 473
25.3.2 定製斷點 473
25.3.3 到達斷點 474
25.3.4 檢查變量 475
25.4 調試示例:外部顯示器代碼 477
25.5 什麼時候真的需要NSLog 480
25.6 使用Instruments剖析代碼 481
25.7 小結 485
第26章 發布應用程序 486
26.1 發布方法 486
26.2 構建非正式的發布 486
26.2.1 設置非正式發布的配置
信息 487
26.2.2 準備構建非正式發布的
版本 487
26.3 構建App Store的發布版本 488
26.3.1 設置App Store條款 489
26.3.2 準備為App Store發布的
版本 489
26.3.3 接下來怎麼做 490
26.4 App Store流程 490
26.5 為App Store提供應用程序
信息 491
26.6 App Store媒體材料 493
26.7 iTunes Connect的運用 493
26.7.1 用戶角色 493
26.7.2 管理應用程序 494
26.8 發送應用程序 494
26.9 更進一步 495
26.10 小結 495
第27章 結語 496
附錄A 安裝開發工具 498
· · · · · · (
收起)