基本信息
作者:張益琿
定價:108元
印次:2-1
ISBN:9787302483564
出版日期:2017.10.01
印刷日期:2017.09.22
內容簡介
本書站在開發者的視角,以iOS 10+Xcode 8和Objective-C+Swift 3雙語言代碼示例,完整地介紹了iOS應用程式從開發到上架的全過程,包含iOS套用開發的各種熱點技術和編者多年的開發經驗分享。全書共11章,包括:開發環境搭建、界面開發、感測器技術、布局與動畫技術、網路和數據技術、打包與上傳發布流程等,基本上每一章都配備了實戰範例,使讀者可以在編寫代碼中學習編程,在套用開發中提高開發技能。本書技術先進,注重實戰,示例豐富,適合iOS開發新手使用,也很適合作為iOS培訓機構的教材或大專院校軟體開發課程的教學參考書。
目錄結構
第1章開發準備1
1.1iOS10新特性簡述2
1.1.1新增觸覺反饋編程接口2
1.1.2SiriKit框架的開放4
1.1.3引入MessagesApp5
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活動指示器控制項——
UIActivityIndicatorView51
2.11進度條控制項——UIProgressView53
2.12步進控制器——UIStepper53
2.12.1步進控制器的基本屬性使用54
2.12.2自定義UIStepper按鈕圖片55
2.13選擇器控制項——UIPickerView56
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警告控制器——UIAlertController61
2.15.1UIAlertController的警告框61
2.15.2UIAlertController之活動列表64
2.16擴展篇65
2.16.1搜尋欄控制項——UISearchBar65
2.16.2日期時間選擇器——
UIDatePicker69
2.16.3警告視圖——UIAlertView71
2.16.4活動列表——UIActionSheet72
2.17實戰:登錄註冊界面的搭建73
第3章高級UI控制項80
3.1導航控制器——UINavigationController81
3.1.1導航控制器的工作原理81
3.1.2使用導航控制器進行多界面
搭建82
3.1.3導航欄UINavigationBar85
3.1.4導航按鈕UIBarButtonItem87
3.1.5導航控制器的工具列90
3.1.6iOS8之後導航控制器的一些
有趣功能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通過網路請求載入
UIWebView102
3.4.3通過HTML字元串載入
UIWebView103
3.4.4通過NSData數據載入
UIWebView104
3.4.5UIWebView中常用方法解析104
3.4.6UIWebView的代理方法106
3.5表格視圖——UITableView107
3.5.1UITableView的創建與復用
機制107
3.5.2創建一個表格視圖
UITableView108
3.5.3關於表格數據的載體
UITableViewCell111
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.3JSON類型數據的解析與數據模型的
設計171
4.3.1JSON數據簡介171
4.3.2在iOS中解析JSON數據173
4.3.3數據模型Model類的設計175
4.4使用CocoaPods進行第三方庫的管理180
4.4.1在MAC上安裝CocoaPods180
4.4.2用CocoaPods搭建一個使用第三方
網路請求框架AFNetworking的
工程182
4.5使用AFNetworking進行網路請求184
4.5.1詳解HTTP/HTTPS協定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視頻播放器視圖控制器——
MPMoviePlayerViewController236
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使用commit方式進行UIView層動畫的
創建298
6.3.1使用commit方式進行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色彩梯度層——
CAGradientLayer304
6.5.3視圖拷貝層——
CAReplicatorLayer305
6.5.4圖形渲染層——
CAShapeLayer307
6.5.5文本繪製層——CATextLayer309
6.5.6CAAnimation動畫體系介紹310
6.5.7使用CABasicAnimation創建
基礎動畫312
6.5.8使用CAKeyframeAnimation類
創建關鍵幀動畫316
6.5.9CALayer層的轉場動畫——
CATransition317
6.5.10CALayer層的組合動畫——
CAAnimationGroup320
6.5.11CATransform3D變換的套用321
6.6炫酷的粒子效果324
6.6.1粒子發射器——
CAEmitterLayer324
6.6.2粒子單元——CAEmitterCell327
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.4FlappyBird遊戲主框架的搭建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中心設備管理類
CBCentralManager374
7.4.2外圍設備管理類
CBPeripheralManager382
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初識autolayout459
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在iTunesConnect中進行套用的
創建與配置534
10.3.2使用Xcode打包與提交
iTunes541
第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