●目 錄 * 1章 iOS開發入門 11.1 iOS繫統介紹 11.1.1 iOS發展史 11.1.2 全新的版本——iOS 11 11.2 開始iOS 11開發之旅 21.3 工欲善其事,必先利其器——搭建開發環境 31.3.1 Xcode介紹 41.3.2 並安裝Xcode 9 41.3.3 創建iOS 11項目並啟動模擬器 61.3.4 打開一個現有的iOS 11項目 81.4 iOS 11中的常用開發框架 81.4.1 Foundation框架簡介 81.4.2 Cocoa框架簡介 101.4.3 iOS程序框架 10* 2章 使用Xcode開發環境詳解 122.1 基本面板介紹 122.1.1 調試工具欄 122.1.2 導航面板介紹 132.1.3 檢查器面板 152.2 Xcode 9的基本操作 162.2.1 改變公司名稱 162.2.2 通過搜索框縮小文件範圍 162.2.3 格式化代碼 172.2.4 代碼縮進和自動完成 172.2.5 文件內查找和替代 182.2.6 快速定位到代碼行 192.2.7 快速打開文件 192.2.8 自定義導航條 202.2.9 使用Xcode幫助 212.2.10 調試代碼 212.3 使用Xcode 9幫助繫統 22第3章 Objective-C語言基礎 243.1 * 耀眼的新星 243.1.1 究* 何為Objective-C 243.1.2 為什麼選擇Objective-C 243.2 Objective-C的優點及缺點 253.3 一個簡單的例子 263.3.1 使用Xcode編輯代碼 263.3.2素介紹 273.4 數據類型和常量 313.4.1 int類型 323.4.2 float類型 333.4.3 double類型 333.4.4 char類型 343.4.5 字符常量 353.4.6 id類型 363.4.7 限定詞 373.4.8 總結基本數據類型 393.5 字符串 393.6 算術表達式 403.6.1 運算符的優先級 403.6.2 整數運負號運算符 413.6.3 模運算符 423.6.4 整型值和浮點值的相互轉換 433.6.5 類型轉換運算符 443.7 表達式 443.7.1 常量表達式 443.7.2 條件運算符 453.7.3 sizeof運算符 453.7.4 關繫運算符 463.7.5 強制類型轉換運算符 463.8 位運算符 473.8.1 按位與運算符 473.8.2 按位或運算符 483.8.3 按位異或運算符 483.8.4 一次求反運算符 493.8.5 向左移位運算符 503.8.6 向右移位運算符 503.8.7 總結Objective-C的運算符 51第4章 Swift語言基礎 524.1 Swift概述 524.1.1 Swift的創造者 524.1.2 Swift的優勢 524.1.3 * 新的Swift 4.0 534.2 數據類型和常量 544.2.1 int類型 544.2.2 float類型 554.2.3 double類型 554.2.4 char類型 554.2.5 字符常量 554.3 變量和常量 564.3.1 常量詳解 564.3.2 變量詳解 564.4 字符串和字符 574.4.1 字符串字面量 574.4.2 初始化空字符串 584.4.3 字符串可變性 584.4.4 值類型字符串 584.4.5 計算字符數量 594.4.6 連接字符串和字符 594.4.7 字符串插值 604.4.8 比較字符串 604.4.9 Unicode 614.5 流程控制 634.5.1 for循環(1) 634.5.2 for循環(2) 644.5.3 while循環 654.6 條件語句 664.6.1 if語句 664.6.2 switch語句 674.7 函數 684.7.1 函數的聲明與調用 684.7.2 函數的參數和返回值 694.8 實戰演練——使用Xcode創建Swift程序 70第5章 Cocoa Touch框架 725.1 Cocoa Touch基礎 725.1.1 Cocoa Touch概述 725.1.2 Cocoa Touch中的框架 735.1.3 Cocoa Touch的優勢 735.2 iPhone的技術層 735.2.1 Cocoa Touch層 735.2.2 多媒體層 765.2.3 核心服務層 775.2.4 核心OS層 785.3 Cocoa Touch中的框架 785.3.1 Core Animation(圖形處理)框架 785.3.2 Core Audio(音頻處理)框架 795.3.3 Core Data(數據處理)框架 795.4 Cocoa中的類 805.4.1 核心類 815.4.2 數據類型類 825.4.3 UI界面類 835.5 國際化 85第6章 Xcode Interface Builder界面開發 866.1 Interface Builder基礎 866.2 和Interface Builder密切相關的庫面板 886.3 Interface Builder采用的方法 886.4 Interface Builder中的故事板——Storyboarding 896.4.1 推出的背景 896.4.2 故事板的文檔大綱 906.4.3 文檔大綱的區域對像 916.5 創建一個界面 916.5.1 對像庫 916.5.2 將對像加入到視圖中 926.5.3 使用IB布局工具 936.6 定制界面外觀 956.6.1 使用屬性檢查器 956.6.2 設置輔助功能屬性 956.6.3 測試界面 966.7 iOS 11控件的屬性 966.8 實戰演練——將設計界面連接到代碼(雙語實現:Objective-C版) 976.8.1 打開項目 976.8.2 輸出口和操作 986.8.3 創建到輸出口的連接 986.8.4 創建到操作的連接 1006.9 實戰演練——將設計界面連接到代碼(雙語實現:Swift版) 1016.10 實戰演練——純代碼實現UI設計 102第7章 使用Xcode編寫MVC程序 1047.1 MVC模式基礎 1047.2 Xcode中的MVC 1057.2.1 原理 1057.2.2 模板* 是給予MVC的 1057.3 在Xcode中實現MVC 1067.3.1 視圖 1067.3.2 視圖控制器 1067.4 數據模型 1087.5 實戰演練——使用模板Single View Application創建MVC程序(雙語實現:Objective-C版) 1097.5.1 創建項目 1097.5.2 規劃變量和連接 1107.5.3 設計界面 1127.5.4 創建並連接輸出口和操作 1137.5.5 實現應用程序邏輯 1147.5.6 生成應用程序 1157.6 實戰演練——使用模板Single View Application創建MVC程序(雙語實現:Swift版) 115第8章 文本框和文本視圖 1168.1 文本框(UITextField) 1168.1.1 文本框基礎 1168.1.2 實戰演練——控制是否顯示TextField中信息 1168.1.3 實戰演練——實現用戶登錄框界面 1188.1.4 實戰演練——限制輸入文本的長度 1198.1.5 實戰演練——實現一個UITextField控件(Swift版) 1208.2 文本視圖(UITextView) 1218.2.1 文本視圖基礎 1218.2.2 實戰演練——拖動輸入的文本 1228.2.3 實戰演練——自定義設置文字的行間距 1228.2.4 實戰演練——自定義 UITextView 控件的樣式 1238.2.5 實戰演練——在指 定的區域中輸入文本(Swift版) 1258.2.6 實戰演練——通過文本提示被單擊的按鈕(雙語實現:Objective-C版) 1268.2.7 實戰演練——在屏幕中顯示被單擊的按鈕(雙語實現:Swift版) 126第9章 按鈕和標簽 1279.1 標簽(UILabel) 1279.1.1 標簽(UILabel)的屬性 1279.1.2 實戰演練——使用UILabel顯示一段文本 1279.1.3 實戰演練——為文字分別添加上劃線、下劃線和中劃線 1299.1.4 實戰演練——顯示被觸摸單詞的字母 1309.1.5 實戰演練——顯示一個指 定樣式的文本(Swift版) 1309.2 按鈕(UIButton) 1319.2.1 按鈕基礎 1329.2.2 實戰演練——自定義設置按鈕的圖案 1329.2.3 實戰演練——實現了一個變換形狀動畫按鈕 1349.3 實戰演練——聯合使用文本框、文本視圖和按鈕(雙語實現:Objective-C版) 1359.3.1 創建項目 1359.3.2 設計界面 1369.3.3 創建並連接輸出口和操作 1409.3.4 實現按鈕模板 1419.3.5 隱藏鍵盤 1429.3.6 實現應用程序邏輯 1449.3.7 總結執行 1459.4 實戰演練——聯合使用文本框、文本視圖和按鈕(雙語實現:Swift版) 1459.5 實戰演練——自定義一個按鈕(Swift版) 145* 10章 滑塊、步進和圖像 14710.1 滑塊控件(UISlider) 14710.1.1 Slider控件的基本屬性 14710.1.2 實戰演練——使用素材圖片實現滑動條特效 14810.1.3 實戰演練——實現自動顯示刻度的滑動條 14910.1.4 實戰演練——實現各種各樣的滑塊 15010.1.5 實戰演練——自定義實現UISlider控件功能(Swift版) 15210.2 步進控件(UIStepper) 15310.2.1 步進控件介紹 15310.2.2 實戰演練——自定義步進控件的樣式 15410.2.3 實戰演練——設置指 定樣式的步進控件 15510.2.4 實戰演練——使用步進控件自動增減數字(Swift版) 15610.3 圖像視圖控件(UIImageView) 15710.3.1 UIImageView的常用操作 15710.3.2 實戰演練——實現圖像的模糊效果 15710.3.3 實戰演練——滾動瀏覽圖片 15910.3.4 實戰演練——實現一個圖片瀏覽器 16010.3.5 實戰演練——使用UIImageView控件(Swift版) 162* 11章 開關控件和分段控件 16311.1 開關控件(UISwitch) 16311.1.1 開關控件基礎 16311.1.2 實戰演練——改變UISwitch的文本和顏色 16311.1.3 實戰演練——顯示具有開關狀態的開關 16411.1.4 實戰演練——顯示一個默認打開的UISwitch控件 16511.1.5 實戰演練——控制是否顯示密碼明文(Swift版) 16511.2 分段控件(UISegmentedControl) 16611.2.1 分段控件的屬性和方法 16711.2.2 實戰演練——使用 UISegmentedControl控件 16811.2.3 實戰演練——添加圖標和文本 17011.2.4 實戰演練——使用分段控件控制背景顏色 17111.2.5 實戰演練——使用UISegmented Control控件(Swift版) 17211.3 實戰演練——聯合使用開關控件和分段控件(雙版實現:Objective-C版) 17311.4 實戰演練——聯合使用開關控件和分段控件(雙版實現:Swift版) 175* 12章 Web視圖控件、可滾動視圖控件和 翻頁控件 17612.1 Web視圖(UIWebView) 17612.1.1 Web視圖基礎 17612.1.2 實戰演練——在UIWebView控件中調用JavaScript 腳本 17712.1.3 實戰演練——使用滑動條動態改變字體的大小 17812.1.4 實戰演練——實現一個迷你瀏覽器工具 17912.1.5 實戰演練——使用UIWebView控件加載網頁(Swift版) 18112.2 可滾動的視圖(UIScrollView) 18212.2.1 UIScrollView的基本用法 18212.2.2 實戰演練——使用可滾動視圖控件 18312.2.3 實戰演練——滑動隱藏狀態欄 18612.2.4 實戰演練——使用UIScrollView控件(Swift版) 18612.3 翻頁控件(UIPageControl) 18712.3.1 PageControll控件基礎 18712.3.2 實戰演練——自定義 UIPageControl 控件的外觀樣式 18812.3.3 實戰演練——實現一個圖片播放器 18912.3.4 實戰演練——實現一個圖片瀏覽程序 19112.3.5 實戰演練——使用UIPageControl控件設置4個界面(Swift版) 19112.4 實戰演練——聯合使用開關、分段控件和Web視圖控件(雙語實現:Objective-C版) 19312.4.1 創建項目 19412.4.2 設計界面 19412.4.3 創建並連接輸出口和操作 19612.4.4 實現應用程序邏輯 19712.4.5 調試運行 20012.5 實戰演練——聯合使用開關、分段控件和Web視圖控件(雙語實現:Swift版) 200* 13章 提醒和操作表 20113.1 UIAlertController基礎 20113.1.1 提醒視圖 20113.1.2 操作表基礎 20113.2 使用UIAlertController 20113.2.1 一個簡單的對話框例子 20213.2.2 “警告”樣式 20313.2.3 文本對話框 20313.2.4 上拉菜單 20513.2.5 釋放對話框控制器 20713.3 實戰演練 20713.3.1 實戰演練——實現一個自定義操作表視圖 20713.3.2 實戰演練——分別自定義實現提醒表視圖和操作表視圖 20813.3.3 實戰演練——自定義UIAlertController控件的外觀 20913.3.4 實戰演練——實現一個提醒框效果(Swift版) 211* 14章 工具欄、日期選擇器 21214.1 工具欄(UIToolbar) 21214.1.1 工具欄基礎 21214.1.2 實戰演練——聯合使用UIToolBar和UIView 21314.1.3 實戰演練——自定義UIToolBar控件的顏色和樣式 21414.1.4 實戰演練——創建一個帶有圖標按鈕的工具欄 21514.1.5 實戰演練——使用UIToolbar制作一個網頁瀏覽器(Swift版) 21614.2 選擇器視圖(UIPickerView) 21814.2.1 選擇器視圖基礎 21814.2.2 實戰演練——實現兩個UIPickerView控件間的數據依賴 21914.2.3 實戰演練——自定義一個選擇器(雙語實現:Objective-C實現) 22214.2.4 實戰演練——自定義一個選擇器(雙語實現:Swift版) 22914.2.5 實戰演練——實現一個單列選擇器 22914.2.6 實戰演練——實現一個“星期”選擇框 23014.3 日期選擇控件(UIDatePicker) 23114.3.1 UIDatePicker基礎 23114.3.2 實戰演練——使用UIDatePicker控件(Swift版) 23314.3.3 實戰演練——實現一個日期選擇器 23414.3.4 實戰演練——使用日期選擇器自動選擇一個時間 240* 15章 表視圖(UITable) 24215.1 表視圖基礎 24215.1.1 表視圖的外觀 24215.1.2格 24215.1.3 添加表視圖 24215.1.4 UITableView詳解 24415.2 實戰演練 24615.2.1 實戰演練——自定義UITableViewCell 24615.2.2 實戰演練——在表視圖中動態格(Swift版) 24915.2.3 實戰演練——拆分表視圖(雙語實現:Objctive-C版) 25115.2.4 實戰演練——拆分表視圖(雙語實現:Swift版) 252* 16章 活動指示器、進度條和檢索條 25316.1 活動指示器(UIActivityIndicatorView) 25316.1.1 活動指示器基礎 25316.1.2 實戰演練——自定義UIActivity IndicatorView控件的樣式 25316.1.3 實戰演練——自定義活動指示器的顯示樣式 25516.1.4 實戰演練——實現不同外觀的活動指示器效果 25816.1.5 實戰演練——使用UIActivityIndicator View控件(Swift版) 25916.2 進度條(UIProgressView) 26016.2.1 進度條基礎 26116.2.2 實戰演練——自定義進度條的外觀樣式 26116.2.3 實戰演練——實現多個具有動態條紋背景的進度條 26116.2.4 實戰演練——自定義一個指 定外觀樣式的進度條 26416.2.5 實戰演練——實現自定義進度條效果(Swift版) 26816.3 檢索條(UISearchBar) 26916.3.1 檢索條基礎 26916.3.2 實戰演練——在查找信息輸入關鍵字時實現自動提示功能 27016.3.3 實戰演練——實現文字輸入的自動填充和自動提示功能 27316.3.4 實戰演練——使用檢索控件快速搜索信息 27416.3.5 實戰演練——使用UISearchBar控件(Swift版) 27716.3.6 實戰演練——在表視圖中實現信息檢索(雙語實現:Objective-C版) 27816.3.7 實戰演練——在表視圖中實現信息檢索(雙語實現:Swift版) 281* 17章 UIView詳解 28217.1 UIView基礎 28217.1.1 UIView的結構 28217.1.2 視圖架構 28417.1.3 視圖層次和子視圖管理 28417.1.4 視圖繪制周期 28517.1.5 UIView的常見應用 28517.2 實戰演練 28617.2.1 實戰演練—給任意UIView視圖四條邊框加上陰影 28617.2.2 實戰演練——給UIView加上各種圓角、邊框效果 28717.2.3 實戰演練——使用UIView控件實現彈出式動畫表單效果 28817.2.4 實戰演練——創建一個滾動圖片瀏覽器(Swift版) 28917.2.5 實戰演練——創建一個產品展示列表(雙語實現:Objctive-C版) 29017.2.6 實戰演練——創建一個產品展示列表(雙語實現:Swift版) 291* 18章 視圖控制器 29218.1 導航控制器(UIViewController)基礎 29218.1.1 UIViewController的常用屬性和方法 29218.1.2 實戰演練——實現可以移動切換的視圖效果 29318.1.3 實戰演練——實現手動旋轉屏幕的效果 29318.2 使用UINavigationController 29418.2.1 UINavigationController詳解 29518.2.2 實戰演練——實現一個界面導航條功能 29618.2.3 實戰演練——創建主從關繫的“主-子”視圖(Swift版) 29918.2.4 實戰演練——使用導航控制器展現3個場景(雙語實現:Objective-C版) 30018.2.5 實戰演練——使用導航控制器展現3個場景(雙語實現:Swift版) 30318.3 選項卡欄控制器 30418.3.1 選項卡欄和選項卡欄項 30418.3.2 實戰演練——使用選項卡欄控制器構建3個場景 30618.3.3 實戰演練——使用格定制表格行 31018.3.4 實戰演練——開發一個界面選擇控制器(Swift版) 311* 19章 實現多場景和彈出框 31319.1 多場景故事板 31319.1.1 多場景故事板基礎 31319.1.2 創建多場景項目 31419.1.3 實戰演練——實現多個視圖之間的切換 31719.1.4 實戰演練——使用* 二個視圖來編輯* 一個視圖中的信息(雙語實現:Objective-C版) 32019.1.5 實戰演練——使用* 二個視圖來編輯* 一個視圖中的信息(雙語實現:Swift版) 323* 20章 UICollectionView和UIVisualEffectView 控件 32420.1 UICollectionView控件詳解 32420.1.1 UICollectionView的構成 32420.1.2 實現一個簡單的UICollectionView 32520.1.3 自定義的UICollectionViewLayout 32720.1.4 實戰演練——使用UICollectionView控件實現網格效果 32820.1.5 實戰演練——實現大小不相同的網格效果 33120.1.6 實戰演練——實現不同顏色方塊的布局效果(Swift版) 33320.2 UIVisualEffectView控件詳解 33320.2.1 UIVisualEffectView基礎 33420.2.2 使用Visual Effect View控件實現模糊特效 33520.2.3 使用Visual Effect View實現Vibrancy效果 33620.2.4 實戰演練——在屏幕中實現模糊效果 33720.2.5 實戰演練——在屏幕中實現遮罩效果 33820.2.6 實戰演練——編碼實現指 定圖像的模糊效果(Swift版) 339* 21章 iPad彈出框和分割視圖控制器 34121.1 iPad彈出框控制器(UIPopoverPresentationController) 34121.1.1 創建彈出框 34121.1.2 創建彈出切換 34121.1.3 實戰演練——彈出模態視圖 34221.2 探索分割視圖控制器 34321.2.1 分割視圖控制器基礎 34321.2.2 實戰演練——使用表視圖(雙語實現:Objective-C版) 34521.2.3 實戰演練——使用表視圖(雙語實現:Swift版) 34921.2.4 實戰演練——創建基於主從關繫的分割視圖(Swift版本) 350* 22章 界面旋轉、大小和全屏處理 35222.1 啟用界面旋轉 35222.1.1 界面旋轉基礎 35222.1.2 實戰演練——實現界面自適應(Swift版) 35322.1.3 實戰演練——設置界面實現自適應(雙語實現:Objective-C版) 35422.1.4 實戰演練——設置界面實現自適應(雙語實現:Swift版) 35422.2 設計可旋轉和可調整大小的界面 35522.2.1 自動旋轉和自動調整大小 35522.2.2 調整框架 35522.2.3 切換視圖 35522.2.4 實戰演練——使用Interface Builder創建可旋轉和調整大小的界面 35522.2.5 實戰演練——在旋轉時調整控件 35722.2.6 實戰演練——旋轉時切換視圖 36022.2.7 實戰演練——實現屏幕視圖的自動切換(Swift版) 363* 23章 圖形、圖像、圖層和動畫 36423.1 圖形處理 36423.1.1 iOS的繪圖機制 36423.1.2 實戰演練——在屏幕中繪制一個三角形 36523.1.3 實戰演練——使用CoreGraphic實現繪圖操作 36623.2 圖像處理 36823.2.1 實戰演練——實現顏色選擇器/調色板功能 36823.2.2 實戰演練——在屏幕中繪制一個圖像 36923.3 圖層 36923.3.1 視圖和圖層 36923.3.2 實戰演練——實現圖片、文字以及翻轉效果 37023.3.3 實戰演練——滑動展示不同的圖片 37123.3.4 實戰演練——演示CALayers圖層的用法(Swift版) 37123.4 實現動畫 37223.4.1 UIImageView動畫 37223.4.2 視圖動畫UIView 37223.4.3 Core Animation詳解 37623.4.4 實戰演練——實現UIView分類動畫效果 37623.4.5 實戰演練——動畫樣式顯示電量使用情況 37823.4.6 實戰演練——圖形圖像的人臉檢測處理(Swift版) 38123.4.7 實戰演練——聯合使用圖像動畫、滑塊和步進控件(雙語實現:Objective-C版) 38223.4.8 實戰演練——聯合使用圖像動畫、滑塊和步進控件(雙語實現:Swift版) 390* 24章 多媒體開發 39124.1 使用AudioToolbox框架 39124.1.1 聲音服務基礎 39124.1.2 實戰演練——播放指 定的聲音文件 39224.1.3 實戰演練——播放任意位置的音頻 39324.2 提醒和振動 39324.2.1 播放提醒音 39424.2.2 實戰演練——實現兩種類型的振動效果(Swift版) 39424.2.3 實戰演練——實用iOS的提醒功能 39524.3 AV Foundation框架 40124.3.1 準備工作 40224.3.2 使用AV音頻播放器 40224.3.3 實戰演練——使用AV Foundation框架播放視頻 40224.3.4 實戰演練——使用AVAudioPlayer播放和暫停指 定的MP3播放(Swift版) 40324.3.5 實戰演練——使用AVKit框架播放列表中的視頻 40424.3.6 實戰演練——使用AVKit框架播放本地視頻 40524.3.7 實戰演練——使用AVKit框架播放網絡視頻 40624.4 圖像選擇器(UIImagePickerController) 40724.4.1 使用圖像選擇器 40724.4.2 實戰演練——獲取照片庫的圖片 407* 25章 分屏多任務 41025.1 分屏多任務基礎 41025.1.1 分屏多任務的開發環境 41025.1.2 Slide Over和Split View基礎 41125.1.3 畫中畫 41225.2 實戰演練 41325.2.1 實戰演練——使用SlideOver多任務(Swift版) 41325.2.2 實戰演練——使用SplitView多任務(Swift版) 41525.2.3 實戰演練——開發一個分割多視圖瀏覽器(Swift版) 419* 26章 定位處理 42226.1 iOS模擬器調試定位程序的方法 42226.2 Core Location框架 42326.2.1 Core Location基礎 42326.2.2 使用流程 42326.2.3 實戰演練——定位顯示當前的位置信息(Swift版) 42526.3 獲取位置 42826.3.1 位置管理器委托 42926.3.2 獲取航向 43026.3.3 實戰演練——定位當前的位置信息 43126.4 加入地圖功能 43226.4.1 Map Kit基礎 43226.4.2 為地圖添加標注 43326.4.3 實戰演練——在地圖中定位當前的位置信息(Swift版) 43426.4.4 實戰演練——在地圖中繪制導航線路 43526.5 實戰演練——創建一個支持定位的應用程序(雙語實現:Objective-C版) 43626.5.1 創建項目 43726.5.2 設計視圖 43826.5.3 創建並連接輸出口 43826.5.4 實現應用程序邏輯 43826.5.5 生成應用程序 44026.6 實戰演練——創建一個支持定位的應用程序 (雙語實現:Swift版) 44026.7 實戰演練——實現地圖定位(雙語實現:Objective-C版) 44126.8 實戰演練——實現地圖定位(雙語實現:Swift版) 442* 27章 讀寫應用程序數據 44327.1 iOS應用程序和數據存儲 44327.2 用戶默認設置 44427.3 設置束 44427.3.1 設置束基礎 44427.3.2 實戰演練——通過隱式首 選項實現一個手電筒程序(雙語實現:Objective-C版) 44527.3.3 實戰演練——通過隱式首 選項實現一個手電筒程序(雙語實現:Swift版) 44827.4 直接訪問文件繫統 44827.4.1 應用程序數據的存儲位置 44927.4.2 獲取文件路徑 44927.4.3 讀寫數據 45027.4.4 讀取和寫入文件 45027.4.5 通過plist文件存取文件 45227.4.6 保存和讀取文件 45327.4.7 文件共享和文件類型 45327.4.8 實戰演練——實現一個用戶信息收集器(雙語實現:Objective-C版) 45427.4.9 實戰演練——實現一個用戶信息收集器(雙語實現:Swift版) 45727.5 核心數據(Core Data) 45827.5.1 Core Data基礎 45827.5.2 實戰演練——使用CoreData 動態添加、刪除數據 45927.6 互聯網數據 46027.6.1 XML和JSON 46027.6.2 實戰演練——使用JSON獲取網站中的照片信息 463* 28章 觸摸、手勢識別和Force Touch 46628.1 多點觸摸和手勢識別基礎 46628.2 觸摸處理 46628.2.1 觸摸事件和視圖 46728.2.2 iOS中的手勢操作 46928.2.3 實戰演練——觸摸的方式移動視圖 47028.2.4 實戰演練——觸摸挪動彩色方塊(Swift版) 47028.3 手勢處理 47428.3.1 手勢處理基礎 47428.3.2 實戰演練——識別手勢並移動屏幕中的方塊(Swift版) 47728.3.3 實戰演練——實現一個手勢識別器(雙語實現:Objective-C版) 48028.3.4 實戰演練——實現一個手勢識別器(雙語實現:Swift版) 48528.4 全新感應功能——Force Touch(3D Touch)技術 48528.4.1 Force Touch介紹 48628.4.2 Force Touch APIs介紹 48628.4.3 實戰演練——使用Force Touch 48728.4.4 實戰演練——啟動Force Touch觸控面板 48928.4.5 實戰演練——為應用程序添加3D Touch手勢(Swift版) 489* 29章 和硬件之間的操作 49129.1 加速計和陀螺儀 49129.1.1 加速計基礎 49129.1.2 陀螺儀 49329.1.3 實戰演練——使用Motion傳感器(Swift版) 49429.1.4 實戰演練——檢測傾斜和旋轉(雙語實現:Objective-C版) 49529.1.5 實戰演練——檢測傾斜和旋轉(雙語實現:Swift版) 49929.2 訪問朝向和運動數據 50029.2.1 兩種方法 50029.2.2 實戰演練——檢測當前設備的朝向(雙語實現:Objective-C版) 50229.2.3 實戰演練——檢測當前設備的朝向(雙語實現:Swift版) 503第30章 地址簿、郵件、Twitter和短消息 50430.1 Contacts Framework框架 50430.1.1 Contacts框架的主要構成類 50430.1.2 使用Contact框架 50530.1.3 實戰演練——使用Contacts框架獲取通信錄信息 50530.2 Message UI電子郵件 50730.2.1 Message UI基礎 50730.2.2 實戰演練——使用Message UI發送郵件(Swift版) 50830.3 使用Twitter發送推特信息 50930.3.1 Twitter基礎 50930.3.2 實戰演練——開發一個Twitter客戶端(Swift版) 50930.4 實戰演練——聯合使用地址簿、電子郵件、Twitter和地圖(雙語實現:Objective-C版) 51130.4.1 創建項目 51130.4.2 設計界面 51230.4.3 創建並連接輸出口和操作 51230.4.4 實現通信錄邏輯 51330.4.5 實現地圖邏輯 51330.4.6 實現電子郵件邏輯 51430.4.7 實現Twitter邏輯 51430.4.8 調試運行 51430.5 實戰演練——聯合使用地址簿、電子郵件、Twitter和地圖(雙語實現:Swift版) 51530.6 使用Messages.framework框架 51530.6.1 Messages.framework框架介紹 51530.6.2 實戰演練——調用並使用Messages.framework框架(Swift版) 515第31章 開發通用的項目程序 51731.1 開發通用應用程序 51731.1.1 在iOS 6中開發通用應用程序 51731.1.2 在iOS 6+中開發通用應用程序 51831.1.3 圖標文件 52431.1.4 啟動圖像 52431.2 實戰演練——使用通用程序模板創建通用應用程序(雙語實現:Objective-C版) 52431.2.1 創建項目 52531.2.2 設計界面 52531.2.3 創建並連接輸出口 52631.2.4 實現應用程序邏輯 52631.3 實戰演練——使用通用程序模板創建通用應用程序(雙語實現:Swift版) 52731.4 實戰演練——使用視圖控制器 52731.4.1 創建項目 52731.4.2 設計界面 52831.4.3 創建並連接輸出口 52831.4.4 實現應用程序邏輯 52831.4.5 生成應用程序 52931.5 實戰演練——使用多個目標 52931.5.1 將iPhone目標轉換為iPad目標 52931.5.2 將iPad目標轉換為iPhone目標 53031.6 實戰演練——創建基於“主—從”視圖的應用程序 53031.6.1 創建項目 53031.6.2 調整iPad界面 53131.6.3 調整iPhone界面 53231.6.4 實現應用程序數據源 53331.6.5 實現主視圖控制器 53531.6.6 實現細節視圖控制器 53631.6.7 調試運行 537第32章 推服務和多線程 53832.1 推服務 53832.1.1 推服務介紹 53832.1.2 推服務的機制 53932.1.3 iOS 中 PushNotificationIOS遠程推送的主要方法 53932.1.4 在iOS中實現遠程推送通知的步驟 54032.1.5 實戰演練——在iOS繫統中發送3種形式的通知 54332.2 多線程 54532.2.1 多線程基礎 54532.2.2 iOS中的多線程 54732.2.3 線程的同步與鎖 55132.2.4 線程的交互 55232.3 ARC機制 55332.3.1 ARC概述 55332.3.2 ARC中的新規則 55432.4 實戰演練——實現後臺多線程處理(雙語實現:Objective-C版) 55432.5 實戰演練——實現後臺多線程處理(雙語實現:Swift版) 556第33章 Touch ID詳解 55733.1 開發Touch ID應用程序 55733.1.1 Touch ID的官方資料 55733.1.2 開發Touch ID應用程序的步驟 55833.2 實戰演練——使用Touch ID認證 55933.3 實戰演練——使用Touch ID密碼和指紋 認證 56033.4 實戰演練——Touch ID認證的綜合 演練 564第34章 使用CocoaPods依賴管理 56734.1 使用CocoaPods基礎 56734.2 安裝CocoaPods 56734.2.1 基本安裝 56734.2.2 快速安裝 56834.3 使用CocoaPods 56834.3.1 在自己的項目中使用CocoaPods 56834.3.2 為自己的項目創建 podspec文件 57034.3.3 生成第三方庫的幫助文檔 57134.4 實戰演練——打開一個用CocoaPods管理的開源項目 571第35章 使用擴展(Extension) 57435.1 擴展(Extension)基礎 57435.1.1 擴展的生命周期 57435.1.2 擴展和容器應用的交互 57535.2 實戰演練——使用Photo Editing Extension(照片擴展) 57535.3 實戰演練——使用TodayExtension(今 日提醒擴展) 58135.4 實戰演練——使用Action Extension翻譯 英文 58335.5 實戰演練——使用Share Extension擴展實現分享功能 586第36章 遊戲開發 59236.1 Sprite Kit框架基礎 59236.1.1 Sprite Kit的優點和缺點 59236.1.2 Sprite Kit、Cocos2D、Cocos2D-X和Unity的選擇 59236.2 實戰演練——開發一個Sprite Kit遊戲 程序 59336.3 實戰演練——開發一個射擊遊戲 601第37章 watchOS 4智能手表開發 60737.1 Apple Watch介紹 60737.2 WatchKit開發詳解 60837.2.1 搭建WatchKit開發環境 60837.2.2 WatchKit架構 60937.2.3 WatchKit布局 61037.2.4 Glances和Notifications(快速預覽信息) 61037.2.5 Watch App的生命周期 61137.3 開發Apple Watch應用程序 61237.3.1 創建Watch應用 61237.3.2 創建Glance界面 61237.3.3 自定義通知界面 61237.3.4 配置Xcode項目 61337.4 實戰演練——實現AppleWatch垂直列表 界面布局 61537.5 實戰演練——演示AppleWatch的日歷 事件 61637.6 實戰演練——在手表中控制小球的 移動 62037.7 實戰演練——實現一個倒 計 時器 621第38章 HealthKit健康應用開發 62338.1 HealthKit基礎 62338.1.1 HealthKit介紹 62338.1.2 市面中的HealthKit應用現狀 62338.1.3 接入HealthKit的好處 62438.2 HealthKit開發基礎 62438.2.1 HealthKit開發要求 62438.2.2 HealthKit開發思路 62538.3 實戰演練——讀寫HealthKit數據 信息 62638.4 實戰演練——心率檢測(Swift版) 62638.5 實戰演練——獲取行走的步數 62938.6 實戰演練——獲取步數、跑步距離、體重和身高(Swift版) 630第39章 在程序中加入Siri功能 63239.1 Siri基礎 63239.1.1 iOS 中的Siri 63239.1.2 HomeKit中的Siri指令 63239.2 在iOS應用程序中使用Siri 63339.2.1 iOS對生態整合與Extension開發的努力 63339.2.2 Siri功能將以Extension擴展的形式存在 63339.2.3 創建Intents Extension 63439.3 實戰演練——在iOS程序中使用Siri 63839.4 實戰演練——在支付程序中使用Siri (Swift版) 641第40章 開發tvOS程序 64540.1 tvOS開發基礎 64540.1.1 tvOS繫統介紹 64540.1.2 tvOS開發方式介紹 64540.1.3 打開遙控器的模擬器 64640.2 使用Custom App方式 64640.2.1 Custom App方式介紹 64640.2.2 實戰演練——開發一個簡單的按鈕響應程序(Swift版) 64640.2.3 實戰演練——開發一個猜謎遊戲(Swift版) 64740.2.4 實戰演練——在tvOS中使用表視圖(Swift版) 64940.3 使用TVML Apps方式 65040.3.1 使用TVML Apps方式開發 65140.3.2 實戰演練——開發一個可響應的tvOS程序(Swift版) 659 40.3.3 實戰演練——電影播放列表(Swift版) 663第41章 使用Apple Pay 66541.1 Apple Pay介紹 66541.2 Apple Pay開發基礎 66541.2.1 Apple Pay支付流程 66541.2.2 配置開發環境 66641.2.3 創建支付請求 66741.2.4 授 權支付 66941.2.5 處理支付 67141.3 實戰演練——Apple Pay接入應用程序 67141.3.1 準備工作 67141.3.2 具體實現 67241.4 實戰演練——使用圖標接入Apple Pay 67641.5 實戰演練——使用圖標接入Apple Pay(Swift版) 678第42章 開發AR虛擬現實程序 68142.1 虛擬現實和增強現實 68142.2 使用ARKit 68142.2.1 ARKit框架基礎 68142.2.2 ARKit與SceneKit的關繫 68242.2.3 ARKit的工作原理 68242.3 實戰演練——自定義實現飛機飛行場景的 AR效果 68342.3.1 準備工作 68342.3.2 具體實現 68442.4 實戰演練——實現3種AR特效捕捉 功能 68642.4.1 實現水平捕捉功能 68642.4.2 實現飛機隨鏡頭飛行效果 68842.4.3 實現環繞飛行效果 68842.5 實戰演練——實現5種AR特效 (Swift版) 689第43章 tvOS電影庫繫統 69543.1 tvOS電影庫繫統介紹 69543.2 繫統介紹 69543.3 使用Objective-C實現 69743.4 使用Swift實現 70343.5 繫統擴展——優酷和土豆視頻 703第44章 分屏多視圖播放器 70444.1 分屏多視圖繫統介紹 70444.2 創建工程 70444.3 分屏具體實現 70544.3.1 實現主視圖界面 70544.3.2 顯示某個視頻的基本信息 70844.3.3 播放視頻 70944.3.4 播放網頁嵌入式視頻 711
內容簡介
內 容 提 要本書循序漸進地講解了iOS 11應用開發的知識。書中從搭建開發環境講起,依次講解了Objective-C語言基礎,Swift 4.0語言基礎,Cocoa Touch,Xcode Interface Builder界面開發,使用Xcode編寫MVC程序,文本框和文本視圖,按鈕和標簽,滑塊、步進和圖像,使用開關控件和分段控件,Web視圖控件和可滾動視圖控件,提醒和操作表,工具欄,日期選擇器,表視圖,活動指示器,進度條和檢索條,UIView,視圖控制器,實現多場景和彈出框,iPad彈出框和分割視圖控制器,界面旋轉,圖形、圖像、圖層和動畫,聲音服務,多媒體應用,定位處理,觸摸,手勢識別和Force Touch,讀寫應用程序數據,觸摸和手勢識別,和硬件之間的操作,開發通用的項目程序,推服務和多線程,Touch ID,遊戲開發,HealthKit健康應用開發,watchOS 4智能手表開......