第1章 開發準備 1
1.1iOS 10新特性簡述 2
1.1.1新增觸覺反饋編程接口 2
1.1.2SiriKit框架的開放 4
1.1.3引入Messages App 5
1.1.4通知框架的整合與擴展 6
1.2 熟悉iOS開發環境 6
1.2.1安裝Xcode開發工具 6
1.2.2了解Xcode開發工具主界面 8
1.2.3Xcode開發工具的使用技巧及
常用快捷鍵 9
1.3 創建個iOS項目 10
1.4 使用Git進行項目版本管理 13
1.4.1Git與Github簡介 13
1.4.2注冊GitHub會員 13
1.4.3使用Xcode創建Git倉庫 15
1.4.4用Xcode建立本地Git倉庫與
GitHub代碼托管平臺的關聯 16
第2章 基礎UI控件 18
2.1iOS系統UI框架的介紹 19
2.1.1MVC設計模式 19
2.1.2代理設計模式 20
2.2 視圖控制器——UIViewController20
2.2.1UIViewController的生命周期 20
2.2.2UIViewController的視圖層級
結構 27
2.3 文本控件——UILabel27
2.3.1使用UILabel在屏幕上創建
一個標簽控件 27
2.3.2自定義標簽控件的相關屬性 28
2.3.3多行顯示的UILabel與換行模式 30
2.4 按鈕控件——UIButton32
2.4.1創建一個按鈕改變屏幕顏色 32
2.4.2更加多彩的UIButton控件 35
2.5 文本輸入框控件——UITextField37
2.5.1在屏幕上創建一個輸入框 37
2.5.2UITextField的常用屬性介紹 39
2.5.3UITextField的代理方法 40
2.5.4實現一個監聽輸入信息的用戶名
輸入框 41
2.6 開關控件——UISwitch43
2.6.1創建一個開關控件 43
2.6.2為UISiwtch控件添加觸發方法 44
2.7 分頁控制器——UIPageControl45
2.8 分段控制器——UISegmentedControl46
2.8.1UISegmentedControl基本屬性的
應用 46
2.8.2對UISegmentedControl中的按鈕
進行增、刪、改操作 48
2.8.3UISegmentedControl中按鈕寬度的
自適應 48
2.9 滑塊控件——UISlider49
2.9.1UISlider的創建與常規設置 49
2.9.2對UISlider添加圖片修飾 51
2.10活動指示器控件——
UIActivityIndicatorView 51
2.11進度條控件——UIProgressView 53
2.12步進控制器——UIStepper 53
2.12.1步進控制器的基本屬性使用 54
2.12.2自定義UIStepper按鈕圖片 55
2.13選擇器控件——UIPickerView 56
2.13.1創建一個UIPickerView控件 56
2.13.2UIPickerView選中數據時的
回調代理 58
2.14通過CALayer對視圖進行修飾 59
2.14.1創建圓角的控件 59
2.14.2創建帶邊框的控件 60
2.14.3為控件添加陰影效果 60
2.15警告控制器——UIAlertController 61
2.15.1UIAlertController的警告框 61
2.15.2UIAlertController之活動列表 64
2.16擴展篇 65
2.16.1搜索欄控件——UISearchBar 65
2.16.2日期時間選擇器——
UIDatePicker 69
2.16.3警告視圖——UIAlertView 71
2.16.4活動列表——UIActionSheet 72
2.17實戰:登錄注冊界面的搭建 73
第3章 高級UI控件 80
3.1 導航控制器——UINavigationController81
3.1.1導航控制器的工作原理 81
3.1.2使用導航控制器進行多界面
搭建 82
3.1.3導航欄UINavigationBar 85
3.1.4導航按鈕UIBarButtonItem 87
3.1.5導航控制器的工具欄 90
3.1.6iOS 8之后導航控制器的一些
有趣功能 91
3.2 標簽控制器——UITabBarController92
3.2.1標簽控制器的工作原理 92
3.2.2標簽控制器的基礎用法解析 92
3.2.3關于UITabBarItem的使用 94
3.3 滾動視圖——UIScrollView96
3.3.1使用UIScrollView展示視圖
內容 96
3.3.2UIScrollView的代理方法 98
3.4 網絡視圖——UIWebView101
3.4.1App網絡傳輸安全策略 101
3.4.2通過網絡請求加載
UIWebView 102
3.4.3通過HTML字符串加載
UIWebView 103
3.4.4通過NSData數據加載
UIWebView 104
3.4.5UIWebView中常用方法解析 104
3.4.6UIWebView的代理方法 106
3.5 表格視圖——UITableView107
3.5.1UITableView的創建與復用
機制 107
3.5.2創建一個表格視圖
UITableView 108
3.5.3關于表格數據的載體
UITableViewCell 111
3.5.4設置UITableView的行高和
頭尾視圖 113
3.5.5UITableView的用戶交互行為 115
3.5.6為UITableView添加索引欄 118
3.6 復雜布局視圖——UICollectionView119
3.6.1UICollectionView控件的優勢與
布局方式 119
3.6.2使用UICollectionView進行
九宮格式的布局 119
3.6.3創建更加靈活的流式布局 122
3.6.4自定義UICollectionViewFlowLayout進行參差瀑布流布局 123
3.6.5使用UICollectionView進行圓環
布局 128
3.7 實戰:開發一款手機網頁 133
3.7.1網頁工程的搭建 133
3.7.2核心網頁視圖的設計 135
3.7.3歷史記錄界面的設計 147
3.7.4收藏界面的設計 151
3.7.5啟動頁面、圖標及應用名稱的
相關優化 154
第4章 網絡編程 157
4.1 使用NSURLConnection請求網絡
數據 158
4.1.1申請一個免費的API服務 158
4.1.2使用NSURLConnection進行API
服務數據的獲取 161
4.1.3使用NSURLConnection進行異步
網絡請求 162
4.1.4使用NSURLConnection類通過代理
回調的方式異步進行網絡請求 164
4.2 設計封裝一個更加易用的網絡請求類 165
4.2.1設計自定義的網絡請求連接類 166
4.2.2設計自定義的網絡請求管理類 167
4.3 JSON類型數據的解析與數據模型的
設計 171
4.3.1JSON數據簡介 171
4.3.2在iOS中解析JSON數據 173
4.3.3數據模型Model類的設計 175
4.4 使用CocoaPods進行第三方庫的管理 180
4.4.1在MAC上安裝CocoaPods 180
4.4.2用CocoaPods搭建一個使用第三方
網絡請求框架AFNetworking的
工程 182
4.5 使用AFNetworking進行網絡請求 184
4.5.1詳解/S協議 184
4.5.2使用AFNetworking進行網絡
請求 185
4.6 實戰:開發“笑一笑”應用程序 188
4.6.1工程項目框架的搭建 188
4.6.2“笑一笑”界面數據載體cell的
設計 190
4.6.3“笑一笑”界面的搭建 193
4.6.4實現下拉刷新與加載更多功能 200
4.6.5“趣圖吧”界面數據載體cell的
設計 203
4.6.6“趣圖吧”界面的設計 207
第5章 音頻、視頻開發 216
5.1iOS音頻開發基礎——AVAudioPlayer
類的使用 217
5.1.1使用AVAudioPlayer進行MP3
音頻文件的播放 217
5.1.2進行音頻播放相關屬性的控制 218
5.1.3后臺播放音頻及用戶交互的
優化 225
5.2iOS視頻開發基礎 229
5.2.1使用MPMoviePlayerController
向應用中嵌入視頻模塊 230
5.2.2MPMoviePlayerController常用
屬性與方法解析 231
5.3 視頻播放器視圖控制器——
MPMoviePlayerViewController 236
5.4AVPlayerViewController視頻播放框架與
畫中畫開發技術 238
5.4.1使用AVPlayerViewController
進行視頻播放 238
5.4.2iPad的畫中畫播放技術 241
5.5 實戰:“歌手王菲”音頻播放器的
開發 244
5.5.1工程搭建與LRC歌詞文件
簡介 244
5.5.2LRC歌詞解析引擎的設計 245
5.5.3核心播放器引擎的設計 253
5.5.4歌曲列表與歌詞顯示視圖界面的
設計 265
5.5.5播放器主頁面的實現 274
5.5.6后臺播放音頻用戶交互的處理 285
第6章 動畫開發 288
6.1 使用UIImageView播放圖片組幀
動畫 289
6.2UIView層動畫的應用 290
6.2.1執行UIView層過渡動畫的3個類
方法 290
6.2.2創建UIView層的阻尼動畫 293
6.2.3動畫參數配置與組合動畫 293
6.2.4UIView層過渡動畫支持的
屬性 297
6.3 使用mit方式進行UIView層動畫的
創建 298
6.3.1使用mit方式進行UIView層
過渡動畫的創建 298
6.3.2兩種UIView層動畫創建方式的
優劣 300
6.4UIView的轉場動畫 300
6.4.1重繪UIView視圖時使用的轉場
動畫 300
6.4.2切換UIView視圖時使用的轉場
動畫 302
6.5 核心動畫編程技術——CoreAnimation303
6.5.1錨點對視圖控件幾何位置的
影響 303
6.5.2色彩梯度層——
CAGradientLayer 304
6.5.3視圖拷貝層——
CAReplicatorLayer 305
6.5.4圖形渲染層——
CAShapeLayer 307
6.5.5文本繪制層——CATextLayer 309
6.5.6CAAnimation動畫體系介紹 310
6.5.7使用CABasicAnimation創建
基礎動畫 312
6.5.8使用CAKeyframeAnimation類
創建關鍵幀動畫 316
6.5.9CALayer層的轉場動畫——
CATransition 317
6.5.10CALayer層的組合動畫——
CAAnimationGroup 320
6.5.11CATransform3D變換的應用 321
6.6 炫酷的粒子效果 324
6.6.1粒子發射器——
CAEmitterLayer 324
6.6.2粒子單元——CAEmitterCell 327
6.6.3創建粒子火焰動畫 330
6.7 播放GIF動態圖 332
6.7.1使用UIWebView進行GIF動態圖
播放 332
6.7.2使用UIImageView幀動畫進行
GIF動態圖播放 334
6.8 實戰:小游戲FlappyBird的設計與
開發 336
6.8.1小鳥對象的設計 336
6.8.2游戲開始界面的設計 341
6.8.3游戲結束界面的設計 344
6.8.4Flappy Bird游戲主框架的搭建 347
第7章 傳感器開發 360
7.1 為應用程序添加手機密碼及指紋識別的
安全驗證 361
7.1.1使用手機密碼為應用程序添加
安全驗證 361
7.1.2使用用戶指紋為應用程序添加
安全驗證 363
7.2 使用加速度傳感器、螺旋儀傳感器與磁力
傳感器獲取設備空間狀態 364
7.2.1使用UIAccelerometer獲取設備
空間狀態 364
7.2.2使用CoreMotion框架獲取設備
空間狀態信息 365
7.3 距離傳感器的應用 371
7.4iOS藍牙開發技術 373
7.4.1中心設備管理類
CBCentralManager 374
7.4.2外圍設備管理類
CBPeripheralManager 382
7.5GPS應用與地圖編程技術 388
7.5.1 進行設備地理位置定位 388
7.5.2原生地圖開發技術 392
7.5.3在地圖中添加大頭針及標注 395
7.5.4在地圖視圖中添加覆蓋物 398
7.5.5在地圖中進行線路導航與附近
興趣點檢索 402
7.6 實戰:簡易藍牙對戰五子棋410
7.6.1游戲核心通信類的設計 410
7.6.2棋盤瓦片的設計 427
7.6.3核心游戲視圖與游戲核心邏輯的
設計 430
7.6.4核心游戲視圖控制器的設計 448
第8章 界面布局 454
8.1iOS中傳統的UIViewAutoresizing布局
模式 455
8.1.1通過代碼設置視圖控件的
UIViewAutoresizing模式 455
8.1.2在xib文件中可視化地配置
控件的autoresizing屬性 457
8.2autolayout自動布局框架 459
8.2.1初識autolayout 459
8.2.2autolayout的屬性意義與一個
簡單的自動布局示例 461
8.2.3使用Objective-C風格的方法
進行代碼autolayout布局 464
8.2.4使用格式化的字符串進行
autolayout布局對象的創建 467
8.2.5與約束相關的幾個方法 470
8.2.6使用autolayout設計一個高度自適應
的聊天輸入框和動畫優化 470
8.2.7使用第三方庫Masonry進行
autolayout的約束布局 474
第9章 數據持久化 482
9.1 使用plist文件進行輕量級數據持久化
管理 483
9.1.1在工程中讀取plist文件數據 483
9.1.2在程序沙盒Doucments目錄中
創建和使用plist文件 485
9.1.3使用NSUserDefaults類進行
數據持久化 486
9.2 使用歸檔技術進行數據模型持久化 489
9.2.1進行單一系統數據類型的歸檔與
解歸檔操作 489
9.2.2對多個對象進行數據歸檔 491
9.2.3進行自定義數據模型的歸檔 492
9.3 小型數據庫SQLite在iOS開發中的
應用 495
9.3.1SQLite數據庫常用語法介紹 495
9.3.2使用iOS原生框架sqlite3對
SQLite數據庫進行操作 497
9.4 核心數據管理框架CoreData的使用 501
9.4.1使用CoreData設計數據模型 502
9.4.2CoreData編程框架中3個
重要的類 504
9.4.3CoreData編程框架的數據操作 510
9.4.4使用CoreData進行數據與頁面的
綁定 516
9.5 網絡緩存策略 524
9.5.1為網絡請求設置緩存策略 524
9.5.2應用緩存管理類NSURLCache
簡介 525
第10章 提交應用程序到AppStore527
10.1使用Xcode開發工具進行程序調試 528
10.1.1使用自定義斷點進行代碼
調試 528
10.1.2添加全局異常斷點 529
10.1.3使用LLDB調試器進行程序
調試 530
10.2Apple開發者賬號的申請 531
10.2.1幾種類型的開發者賬號 531
10.2.2申請開發者賬號的過程 531
10.3進行應用程序的打包 534
10.3.1在iTunes Connect中進行應用的
創建與配置 534
10.3.2使用Xcode打包與提交
iTunes 541
第11章 更多功能與進階技巧 545
11.1Objective-C中block語法的應用 546
11.1.1聲明與實現block語法塊 546
11.1.2block代碼塊中訪問對象的微妙
關系 547
11.2iOS通知中心NSNotificationCenter的
應用 548
11.2.1通知類NSNotification簡介 549
11.2.2通知中心NSNotificationCenter的
應用 549
11.3多線程開發技術 550
11.3.1使用NSThread進行線程
管理 550
11.3.2使用NSOperation類與
NSOperationQueue類進行多任務
管理 552
11.3.3iOS中GCD編程技術簡介 556
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。