iOS核心開發手冊(原書第5版)

iOS核心開發手冊(原書第5版)
定價:714
NT $ 621
  • 作者:(美)薩頓
  • 出版社:機械工業出版社
  • 出版日期:2015-03-01
  • 語言:簡體中文
  • ISBN10:7111491858
  • ISBN13:9787111491859
  • 裝訂:539頁 / 普通級 / 1-1
 

內容簡介

由著名iOS編程專家、頂級iOS開發大師聯合撰寫,是市面上最暢銷的iOS開發圖書的全新升級版本。書中用豐富的實例、直觀的代碼展示創建優秀iOS程序所需的全部技巧,幫助讀者輕松掌握並高效開發iOS程序。

EricaSadun是一位暢銷書作者,曾編著、合著、參與貢獻出版了幾十本有關移動開發和相關主題的書籍,包括廣受歡迎的The Core iOS6 Developer’’s Cook book、iOS Auto Layout Demystified、iOS Drawing:Pratical UI Kit Solutions以及Talking to Siri。她還寫博客。愛飛翔,資深軟件開發工程師,擅長Web開發、移動開發和游戲開發,有10余年開發經驗,曾主導和參與了多個手初游戲和手機軟件項目的開發,經驗十分豐富。業余愛好文學和歷史,有一定的文學造詣。翻譯並出版了《Android游戲開發實踐指南》、《測試驅動的iOS開發》、《HTML5Canvas核心技術:圖形、動畫與游戲開發》和《JavaScript應用開發實踐指南》等書。Rich Wardwell是Black Pixel的資深iOS及Mac開發者,在專業級服務器、桌面和移動領域有20多年軟件開發經驗,並以主要開發者的身份參與制作了很多款Apple App Stre上的優秀iOS應用程序,包括USA Today及Fox News。
 

目錄

譯者序
前 言
致 謝

第1章 手勢與觸摸 1
1.1 觸摸 1
1.1.1 觸摸操作所處的階段 2
1.1.2 UIResponder類中的觸摸事件響應方法 3
1.1.3 對視圖的觸摸 4
1.1.4 多點觸摸 4
1.1.5 手勢識別器 5
1.2 解決方案:添加簡單的直接操縱界面 5
1.3 解決方案:添加拖動手勢識別器 7
1.4 解決方案:同時使用多個手勢識別器 9
1.5 解決方案:限制移動 14
1.6 解決方案:測試觸摸 15
1.7 解決方案:針對位圖的觸摸測試 17
1.8 解決方案:根據觸摸情況在屏幕上繪制內容 19
1.9 解決方案:令繪制效果變得平滑 21
1.10 解決方案:啟用多點觸摸 24
1.11 解決方案:檢測圓圈手勢 27
1.12 解決方案:創建自定義手勢識別器 32
1.13 解決方案:把滾動視圖中的內容拖曳到外面 34
1.14 解決方案:實時的觸摸反饋 37
1.14.1 啟用觸摸反饋效果 38
1.14.2 攔截並轉發觸摸事件 38
1.14.3 實現TOUCHkit的TOUCHkitView類 40
1.15 解決方案:向視圖中添加菜單 42
1.16 小結 43

第2章 構建並使用控件 45
2.1 UIControl類 45
2.1.1 目標—動作模式 46
2.1.2 控件的種類 46
2.1.3 控件事件 46
2.2 按鈕 48
2.3 Interface Builder中的按鈕 50
2.4 解決方案:構建按鈕 51
2.4.1 多行按鈕文本 54
2.4.2 為按鈕添加動畫元件 54
2.4.3 為按鈕添加額外狀態 55
2.5 解決方案:使按鈕以動畫效果來響應用戶 55
2.6 解決方案:為滑桿控件添加自定義的滑塊 57
2.6.1 定制UISlider控件 57
2.6.2 添加優化代碼 58
2.7 解決方案:創建可以連續點擊兩次的分段選擇控件 61
2.7.1 實現第二次點擊時的反饋效果 62
2.7.2 控件及帶屬性的字符串 63
2.8 開關控件與步進控件 64
2.9 解決方案:編寫UIControl的子類 65
2.9.1 創建控件 68
2.9.2 追蹤觸摸事件 68
2.9.3 派發控件事件 69
2.10 解決方案:構建評分所用的Star Slider控件 69
2.11 解決方案:構建觸摸轉盤控件 72
2.12 解決方案:創建拉曳控件 75
2.12.1 為控件添加提示效果 75
2.12.2 測試觸摸 77
2.13 解決方案:構建自定義的鎖定控件 80
2.14 解決方案:圖片庫查看器 83
2.15 構建工具欄 85
2.16 小結 88

第3章 提醒用戶 89
3.1 直接向用戶彈出警告視圖 89
3.1.1 構建簡單的警告視圖 89
3.1.2 設置UIAlertView的委托 91
3.1.3 顯示UIAlertView 92
3.1.4 各種UIAlertView 92
3.2 解決方案:構建支持塊的警告視圖 93
3.2.1 塊簡介 93
3.2.2 使用塊時避免保留循環 95
3.3 解決方案:將變長參數列表與UIAlertView結合起來使用 98
3.4 展示選項列表 99
3.4.1 滾動菜單 101
3.4.2 在動作表中顯示文本 101
3.5 將操作進度告知用戶並提示其稍等片刻 102
3.5.1 使用UIActivity—IndicatorView 103
3.5.2 使用UIProgressView 103
3.6 解決方案:在屏幕上繪制模態的進度指示器 104
3.7 解決方案:自制的模態警告視圖 106
3.8 解決方案:基本的popover 110
3.9 解決方案:本機通知 111
3.10 用網絡活動指示器提醒用戶 113
3.11 解決方案:播放簡單的提示音 114
3.11.1 System Sound 114
3.11.2 為使用系統框架而引入模塊 115
3.11.3 震動 115
3.11.4 警示音 116
3.11.5 延遲 117
3.11.6 釋放系統音 117
3.12 小結 117

第4章 編排視圖及其動畫效果 119
4.1 視圖層級 119
4.2 解決方案:用樹狀圖來描述視圖層級 121
4.3 解決方案:查詢子視圖 123
4.4 管理子視圖 125
4.4.1 添加子視圖 125
4.4.2 重排及刪除子視圖 125
4.4.3 UIView的回調方法 125
4.5 為視圖設定標簽並查找視圖 126
4.6 解決方案:通過對象關聯機制為視圖設定名稱 127
4.7 視圖的幾何特征 129
4.7.1 框架 130
4.7.2 與CGRect有關的工具函數 130
4.7.3 CGPoint與CGSize 131
4.7.4 CGAffineTransform 132
4.7.5 坐標系統 133
4.8 解決方案:操控視圖的框架 133
4.8.1 調整視圖的尺寸 134
4.8.2 CGRect與中心點 136
4.8.3 視圖的其他幾何特征 137
4.9 解決方案:獲取與坐標變換有關的信息 141
4.9.1 獲取與變換有關的屬性 141
4.9.2 判斷兩個視圖是否相交 142
4.10 與顯示和交互有關的特征 147
4.11 UIView的動畫效果 148
4.12 解決方案:視圖的淡入與淡出 150
4.13 解決方案:交換兩個視圖的前后順序 151
4.14 解決方案:翻轉視圖 151
4.15 解決方案:采用Core Animation API來制作切換效果 153
4.16 解決方案:使視圖在出現之后回彈 155
4.17 解決方案:關鍵幀動畫 156
4.18 解決方案:UIImageView的動畫效果 157
4.19 小結 158

第5章 視圖的約束系統 160
5.1 什麼是約束 161
5.2 約束系統所用的屬性 161
5.3 約束系統的運作規律 163
5.4 約束規則與框架屬性 165
5.4.1 固有內容的尺寸 165
5.4.2 對齊矩形 166
5.5 創建約束規則 167
5.5.1 基本約束規則聲明 167
5.5.2 用可視化格式字符串聲明約束規則 168
5.5.3 變量綁定 169
5.6 格式字符串 169
5.6.1 方向 169
5.6.2 連接 171
5.7 謂詞 173
5.7.1 指標 173
5.7.2 描述兩個視圖關系的謂詞 174
5.7.3 優先級 174
5.8 格式字符串總結 174
5.9 用格式字符串將視圖對齊並靈活調整其尺寸 176
5.10 處理約束規則的流程 176
5.11 管理約束規則 177
5.12 解決方案:實現約束規則之間的對比 178
5.13 解決方案:創建尺寸固定且受規則約束的視圖 181
5.13.1 禁用translatesAutoresizing—MaskIntoConstraints 181
5.13.2 令視圖出現在上級視圖范圍內 182
5.13.3 限定視圖的尺寸 183
5.13.4 把前面各節內容拼裝起來 183
5.14 解決方案:將兩個視圖居中對齊 185
5.15 解決方案:設定寬高比 186
5.16 解決方案:響應屏幕方向的變更 188
5.17 調試約束規則 190
5.18 解決方案:描述約束規則 191
5.19 用宏來創建約束規則 194
5.20 小結 197

第6章 文本輸入 198
6.1 解決方案:隱藏UITextField的鍵盤 199
6.1.1 阻止系統把鍵盤隱藏起來 200
6.1.2 UITextInputTraits協議中的屬性 200
6.1.3 文本框的其他屬性 201
6.2 解決方案:把帶有自定義輔助視圖的鍵盤隱藏起來 203
6.3 解決方案:根據鍵盤來調整文本視圖 205
6.4 解決方案:創建自定義的輸入視圖 209
6.5 解決方案:使視圖具備文本輸入功能 213
6.6 解決方案:為非文本視圖添加自定義的輸入視圖 216
6.7 解決方案:創建更好的文本編輯器(第一部分) 218
6.8 解決方案:創建更好的文本編輯器(第二部分) 221
6.8.1 啟用Attributed Text 221
6.8.2 控制文本的樣式 221
6.8.3 可供UIResponder使用的其他功能 223
6.9 解決方案:過濾用戶所輸入的文本 224
6.10 解決方案:檢測文本模式 226
6.10.1 構建自己的正則表達式 227
6.10.2 枚舉正則表達式 227
6.10.3 數據探測器 228
6.10.4 使用內置類型的探測器 229
6.10.5 有用的網站 229
6.11 解決方案:檢測UITextView中的拼寫錯誤 231
6.12 搜尋文本中的字符串 232
6.13 小結 233

第7章 使用視圖控制器 234
7.1 視圖控制器 234
7.1.1 UIViewController類 235
7.1.2 導航控制器 235
7.1.3 標簽欄控制器 235
7.1.4 分欄視圖控制器 236
7.1.5 頁面視圖控制器 236
7.1.6 popover控制器 236
7.2 使用導航控制器與分欄視圖控制器來開發程序 237
7.2.1 使用導航控制器與導航棧 238
7.2.2 推入與彈出視圖控制器 239
7.2.3 導航欄上的按鈕 239
7.2.4 延伸至屏幕邊緣的布局形式 240
7.3 解決方案:UINavigationItem類 241
7.3.1 標題與后退按鈕 242
7.3.2 宏 242
7.4 解決方案:模態界面 244
7.5 解決方案:構建分欄視圖控制器 248
7.6 解決方案:用分欄視圖及導航控制器創建通用的程序 253
7.7 解決方案:標簽欄 255
7.8 記住標簽的狀態 259
7.9 解決方案:頁面視圖控制器 262
7.9.1 與書籍展示風格有關的屬性 262
7.9.2 封裝實現細節 263
7.9.3 范例代碼詳解 269
7.9.4 構建界面索引 270
7.10 解決方案:自定義的容器 271
7.10.1 添加與移除子視圖控制器 274
7.10.2 視圖控制器之間的切換效果 275
7.11 解決方案:segue 276
7.12 小結 282

第8章 常用的控制器 284
8.1 圖像選取器控制器 284
8.1.1 圖像來源 284
8.1.2 在iPhone和iPad中顯示選取器 285
8.2 解決方案:選取圖像 286
8.2.1 向模擬器中添加圖片 286
8.2.2 AssetsLibrary模塊 286
8.2.3 展示選取器 287
8.2.4 處理delegate的回調 288
8.3 解決方案:拍攝照片 293
8.3.1 配置選取器 293
8.3.2 顯示圖像 295
8.3.3 把圖像保存到相冊 295
8.4 解決方案:錄制視頻 297
8.4.1 創建錄制視頻用的選取器 298
8.4.2 保存視頻 299
8.5 解決方案:用媒體播放器播放視頻 299
8.6 解決方案:編輯視頻 302
8.7 解決方案:選取並編輯視頻 304
8.8 解決方案:通過電子郵件發送圖片 306
8.9 解決方案:發送文本消息 309
8.10 解決方案:在社交網站發布消息 311
8.11 小結 313

第9章 創建並管理表格視圖 314
9.1 iOS的表格 314
9.2 委托 315
9.3 創建表格 316
9.3.1 表格的樣式 316
9.3.2 排布表格視圖 316
9.3.3 設置數據源 317
9.3.4 提供單元格 317
9.3.5 注冊單元格類 317
9.3.6 從隊列中取出單元格 318
9.3.7 設置delegate 318
9.4 解決方案:實現簡單的表格 319
9.4.1 數據源方法 319
9.4.2 響應用戶的觸摸 322
9.5 UITableViewCell類 322
9.5.1 單元格的selectionStyle屬性 323
9.5.2 添加自定義的單元格受選效果 323
9.6 解決方案:創建帶有選取標記的單元格 323
9.7 給單元格添加詳情展示控件 325
9.8 解決方案:編輯表格 327
9.8.1 添加撤銷功能 331
9.8.2 實現撤銷功能 332
9.8.3 顯示移除單元格所用的控件 332
9.8.4 處理刪除請求 332
9.8.5 通過滑動手勢刪除單元格 333
9.8.6 調整單元格的順序 333
9.8.7 添加單元格 333
9.9 解決方案:操控表格的區段 334
9.9.1 構建區段 334
9.9.2 區段數量與區段內的行數 335
9.9.3 返回單元格 335
9.9.4 創建每個區段的頭部標題 337
9.9.5 定制表格與區段的頭部及尾部 338
9.9.6 創建區段索引 338
9.9.7 處理索引與區段不匹配的問題 339
9.9.8 為分區表格實現委托方法 339
9.10 解決方案:在表格中搜索 339
9.10.1 創建搜索顯示控制器 341
9.10.2 為搜索顯示控制器注冊單元格 341
9.10.3 構建支持搜索功能的數據源方法 342
9.10.4 委托方法 343
9.10.5 使用與搜索功能相配套的索引 344
9.11 解決方案:給表格添加下拉刷新功能 345
9.12 解決方案:添加指令行 348
9.13 制作自定義的分組表格 351
9.14 解決方案:構建含有多個滾輪的表格 352
9.14.1 創建UIPickerView 353
9.14.2 數據源方法與委托方法 353
9.14.3 使用帶有選取器的視圖 354
9.15 使用UIDatePicker 356
9.16 小結 357

第10章 集合視圖 358
10.1 集合視圖與表格的異同 358
10.2 建立集合視圖 360
10.2.1 通過控制器使用集合視圖 361
10.2.2 直接使用集合視圖 361
10.2.3 數據源與委托 362
10.3 流式布局 362
10.3.1 滾動方向 362
10.3.2 條目的尺寸以及行間距 362
10.3.3 頭部與尾部的尺寸 364
10.3.4 內邊距 365
10.4 解決方案:采用流式布局的簡單集合視圖 366
10.5 解決方案:自定義單元格 370
10.6 解決方案:水平滾動的列表 372
10.7 解決方案:創建交互式的布局效果 375
10.8 解決方案:滾動之后自動調整位置 377
10.9 解決方案:創建圓形布局 378
10.9.1 實現創建條目與刪除條目時的動畫效果 381
10.9.2 增強圓形布局的實用性 382
10.9.3 布局對象 383
10.10 解決方案:用手勢調整布局 383
10.11 解決方案:創建真正的網格狀布局 385
10.12 解決方案:為集合視圖中的條目添加自定義菜單 391
10.13 小結 393

第11章 分享文檔與數據 394
11.1 解決方案:使用統一類型標識符 394
11.2 解決方案:訪問系統剪貼板 400
11.3 解決方案:監控Documents文件夾 403
11.4 解決方案:活動視圖控制器 408
11.5 解決方案:Quick Look預覽控制器 417
11.6 解決方案:使用文檔交互控制器 420
11.7 解決方案:聲明程序所支持的文檔類型 426
11.8 解決方案:創建基於URL的服務 431
11.9 小結 434

第12章 淺談Core Data 435
第13章 網絡編程基礎 462
第14章 針對特定設備的開發 493
第15章 輔助功能 524

附錄A Objective—C字面量 536
網路書店 類別 折扣 價格
  1. 新書
    87
    $621