●目錄 章 項目簡介——“開門見山” 1 1.1 項目介紹 2 1.1.1 項目背景介紹 2 1.1.2 項目注冊 2 1.1.3 接口文檔的獲取和查看 5 1.1.4 項目功能介紹 8 1.2 Swift語言介紹 12 1.3 搭建開發環境 12 1.3.1 Xcode概述 12 1.3.2 Xcode工具的安裝 13 1.4 項目目標 15 1.5 本章小結 15 第2章 微博開發準備——“工欲善其事,必先利其器” 16 2.1 創建微博工程 17 2.1.1 新建項目 17 2.1.2 默認項目架構 19 2.1.3 了解程序啟動的原理 20 2.2 設置項目啟動信息 21 2.2.1 設置應用名稱 21 2.2.2 設置應用圖標 21 2.2.3 設置啟動圖片 23 2.3 項目整體架構 26 2.3.1 了解什麼是視圖(UIView) 27 2.3.2 了解視圖控制器(UIViewController) 28 2.3.3 導航控制器的使用場景 28 2.3.4 標簽控制器的使用場景 29 2.3.5 確定項目整體架構 29 2.3.6 MVC與MVVM模式 30 2.4 本章小結 32 第3章 微博項目搭建——“萬丈高樓平地起” 33 3.1 設置項目目錄結構 34 3.1.1 設置目錄結構 34 3.1.2 創建各個控制器模板文件 36 3.1.3 顯示控制器的界面 38 3.2 添加子控制器 39 3.2.1 標簽控制器的組成 39 3.2.2 導航控制器的組成 41 3.2.3 設置標簽和標題 42 3.3 添加撰寫按鈕 44 3.3.1 了解什麼是按鈕控件(UIButton) 44 3.3.2 自定義Tab Bar 45 3.3.3 按鈕監聽方法 48 3.4 本章小結 49 第4章 訪客視圖 50 4.1 分析訪客視圖與現有架構的關繫 51 4.2 創建表格視圖控制器基類 52 4.2.1 了解視圖的加載機制 52 4.2.2 添加表視圖控制器基類 53 4.3 分析訪客視圖界面 54 4.3.1 標簽控件(UILabel) 54 4.3.2 圖片控件(UIImageView) 55 4.3.3 分析訪客視素 56 4.4 開發訪客視圖界面 58 4.4.1 創建訪客視圖 58 4.4.2 添加圖片控件 59 4.4.3 了解自動布局(Auto Layout) 60 4.4.4 使用自動布局(Auto Layout) 61 4.4.5 使用自動布局設置圖片的位置 63 4.4.6 添加其他控件 64 4.4.7 VFL語言 67 4.4.8 添加遮罩視圖,並使用VFL布局位置 69 4.4.9 設置未登錄信息 70 4.5 首頁動畫 74 4.5.1 了解iOS中的基本動畫 74 4.5.2 為首頁轉輪圖片設置動畫 75 4.6 本章小結 75 第5章 第三方框架介紹 76 5.1 CocoaPods工具 77 5.1.1 CocoaPods工具簡介 77 5.1.2 安裝CocoaPods工具 78 5.2 AFNetworking框架 78 5.3 SnapKit框架 79 5.4 SDWebImage框架 84 5.4.1 SDWebImage框架的安裝 84 5.4.2 SDWebImage框架的簡單使用 86 5.5 SVProgressHUD框架 87 5.5.1 SVProgressHUD框架介紹 87 5.5.2 使用SVProgressHUD框架 88 5.6 本章小結 88 第6章 封裝網絡工具類 89 6.1 網絡編程基礎知識 90 6.1.1 網絡編程簡單工作原理 90 6.1.2 URL介紹 90 6.1.3 HTTP協議 92 6.1.4 GET和POST方法 92 6.2 封裝網絡工具類 93 6.2.1 網絡封裝原理 93 6.2.2 使用CocoaPods工具導入AFNetworking框架 94 6.2.3 了解什麼是單例模式 95 6.2.4 創建網絡工具類 96 6.3 本章小結 101 第7章 登錄授權 102 7.1 OAuth機制 103 7.1.1 OAuth機制介紹 103 7.1.2 OAuth機制的使用流程 103 7.1.3 新浪微博的Oauth 2.0授權機制 104 7.2 獲取訪問令牌 105 7.2.1 分析如何獲取訪問令牌 105 7.2.2 了解什麼是Web視圖 106 7.2.3 使用Web視圖加載登錄授權頁面 108 7.2.4 利用JS注入填充用戶名和密碼 111 7.2.5 獲取授權碼(code) 115 7.2.6 獲取訪問令牌(access_token) 117 7.3 加載用戶信息 120 7.3.1 了解JSON文檔的結構 120 7.3.2 解析JSON文檔 121 7.3.3 了解字典轉模型的機制 122 7.3.4 創建用戶賬號模型 123 7.3.5 處理令牌的過期日期 124 7.3.6 使用令牌加載用戶信息 125 7.4 歸檔用戶信息到本地 127 7.4.1 了解沙盒機制 127 7.4.2 沙盒的目錄結構 128 7.4.3 沙盒目錄獲取方式 129 7.4.4 對像歸檔技術 130 7.4.5 歸檔和解檔當前用戶的信息 131 7.4.6 創建用戶視圖模型 132 7.5 本章小結 137 第8章 新特性和歡迎界面 138 8.1 為項目添加新特性界面 139 8.1.1 分析新特性界面 139 8.1.2 介紹集合視圖(UICollectioView) 139 8.1.3 創建新特性視圖控制器 144 8.1.4 設置數據源 145 8.1.5 設置集合視圖的布局 146 8.1.6 自定義集合格(cell) 146 8.1.7 使用UIView實現動畫 148 8.1.8 “開始體驗”按鈕動畫 149 8.2 為項目添加歡迎界面 151 8.2.1 分析歡迎界面 151 8.2.2 歡迎界面布局 152 8.2.3 歡迎界面動畫 157 8.2.4 設置用戶頭像 159 8.3 切換界面 159 8.3.1 界面切換流程分析 159 8.3.2 介紹偏好設置(NSUserDefaults) 160 8.3.3 顯示程序啟動後的界面 161 8.3.4 歡迎界面跳轉到首頁界面 163 8.3.5 新特性界面跳轉到首頁界面 164 8.3.6 訪客視圖跳轉到歡迎界面 164 8.4 本章小結 165 第9章 微博首頁 166 9.1 微博數據模型 168 9.1.1 獲取微博數據 168 9.1.2 字典轉換成模型 170 9.1.3 表視圖(UITableView) 171 9.1.4 表格(UITableViewCell) 174 9.1.5 表格顯示微博數據 176 9.1.6 嵌套用戶模型 179 9.1.7 微博視圖模型 181 9.2 文字微博布局 183 9.2.1 分析無圖微博的布局 183 9.2.2 自格 184 9.2.3 頂部視圖布局 187 9.2.4 內容標簽布局 192 9.2.5 底部視圖布局 194 9.2.6 &nbs格細節調整 199 9.2.7 全局修改函數的名字 200 9.3 配圖微博布局 202 9.3.1 微博中圖片的顯示方式 202 9.3.2 準備配圖需要的數據 202 9.3.3 添加配圖視圖 208 9.3.4 修改配圖視圖寬高 209 9.3.5 計算配圖視圖的大小 210 9.3.6 計算格的行高 213 9.3.7 了解圖像視圖的填充模式 214 9.3.8 給格設置圖片 215 9.3.9 給圖片添加GIF標記 217 9.4 本章小結 218 0章 微博轉發 219 10.1 顯示轉發的微博 220 10.1.1 轉發微博分析 220 10.1.2 準備數據模型 221 10.1.3 搭建轉發格 222 10.1.4 設置被轉發微博的數據 226 10.1.5 處理原創微博與轉發微博的互融 227 10.1.6 了解GCD技術 229 10.1.7 調整單張圖片的顯示 230 10.2 刷新微博 233 10.2.1 下拉刷新模式 233 10.2.2 下拉刷新控件 235 10.2.3 分析微博刷新的過程 237 10.2.4 使用Xib自定義下拉刷新控件 240 10.2.5 KVO機制 245 10.2.6 使用KVO監聽刷新控件的位置變化 246 10.2.7 提示箭頭旋轉動畫 248 10.2.8 播放和停止加載動畫 249 10.2.9 自定義上拉刷新控件 251 10.2.10 刷新用到的網絡數據 252 10.2.11 下拉刷新提示數量標簽 255 10.3 表情鍵盤 256 10.3.1 多行文本控件(UITextView) 256 10.3.2 創建表情鍵盤視圖 258 10.3.3 表情鍵盤界面布局 259 10.3.4 項目添加文件夾的3種方式 265 10.3.5 加載數據模型 266 10.3.6 顯示表情符號 268 10.3.7 顯示emoji表情 270 10.3.8 提升數據模型 271 10.3.9 選中表情事件 275 10.3.10 實現圖文混排 276 10.3.11 處理發布微博的文本 278 10.3.12 簡化控制器的代碼 281 10.4 本章小結 284 1章 發布微博 285 11.1 發布文本和圖片微博 286 11.1.1 發布微博過程分析 286 11.1.2 工具條控件(UIToolbar) 287 11.1.3 搭建發布微博的界面 289 11.1.4 彈出鍵盤和關閉鍵盤介紹 296 11.1.5 實現繫統鍵盤的彈出和關閉 297 11.1.6 在項目中整合表情鍵盤 298 11.1.7 發布文字微博 300 11.1.8 發布帶圖片的微博 303 11.2 給微博選擇照片 305 11.2.1 用戶選擇照片發布的流程 305 11.2.2 選擇照片功能的實現流程 307 11.2.3 圖片選擇器(UIImagePickerController) 308 11.2.4 開發獨立的照片選擇項目 310 11.2.5 將照片選擇功能整合到微博項目 323 11.3 本章小結 327 2章 給配圖微博添加查看器 328 12.1 照片查看器功能分析 329 12.1.1 了解照片查看器的功能 329 12.1.2 分析圖片數據的傳遞方式 330 12.1.3 屏幕滾動控件(UIScrollView) 331 12.1.4 分析圖片查看器的視圖結構 334 12.2 照片查看器功能的實現 335 12.2.1 實現數據傳遞 335 12.2.2 準備圖片查看控制器 337 12.2.3 使用貝塞爾路徑(UIBezierPath)繪圖 338 12.2.4 手勢識別(UIGestureRecognizer) 338 12.2.5 搭建圖片查看界面 341 12.2.6 實現圖片查看的功能 342 12.3 為照片查看器添加轉場動畫 353 12.3.1 什麼是轉場動畫 354 12.3.2 了解照片查看器的轉場功能 355 12.3.3 分析轉場過程中視圖的層次結構 356 12.3.4 分析圖像的起始位置和目標位置 357 12.3.5 初步完成自定義轉場動畫 358 12.3.6 通過代理展現轉場動畫 363 12.3.7 通過代理解除轉場動畫 371 12.4 本章小結 376 3章 數據緩存 377 13.1 SQLite數據庫 378 13.1.1 SQLite數據庫簡介 378 13.1.2 SQL語句介紹 379 13.1.3 使用SQLite3存儲對像 380 13.2 FMDB框架的使用 380 13.2.1 獲取FMDB框架 380 13.2.2 FMDB框架核心類 381 13.2.3 使用FMDB框架操作數據庫 381 13.3 使用FMDB緩存微博數據 393 13.3.1 分析微博緩存的原理 393 13.3.2 實現微博緩存 394 13.4 清理數據存儲 402 13.5 本章小結 404 4章 微博優化 405 14.1 和日期相關的類 406 14.1.1 NSDate類(日期和時間) 406 14.1.2 NSDateFormatter類(日期格式器) 406 14.1.3 NSCalendar類 407 14.2 微博日期處理 408 14.2.1 了解微博的日期的顯示方式 408 14.2.2 處理微博日期格式 408 14.3 使用正則表達式處理微博來源 412 14.3.1 了解正則表達式處理字符串 412 14.3.2 使用正則表達式過濾接口的來源信息 413 14.4 使用表情文字 415 14.4.1 準備工作 416 14.4.2 測試普通字符串轉換成屬性字符串 417 14.4.3 將功能代碼移到EmoticonManager類裡面 419 14.4.4 微博項目整合表情字符串功能 420 14.5 使用FFLabel框架響應超鏈接 421 14.5.1 導入FFLabel框架 422 14.5.2 替換繫統的UILabel控件 423 14.5.3 監聽鏈接的單擊 424 14.5.4 響應超文本的鏈接 425 14.6 開發最近使用表情的功能 428 14.7 本章小結 430 5章 項目調試和發布 432 15.1 真機測試 433 15.2 發布App到App Store流程 437 15.2.1 申請開發者賬號 437 15.2.2 登錄開發者中心 437 15.2.3 生成發布證書 438 15.2.4 在Xcode中打包工程上傳 444 15.2.5 在App Store上開闢空間 446 15.3 本章小結 447
內容簡介
內容提要 Swift是蘋果公司於2014年推出的一種全新語言,它正在逐步替代Objective-C語言進行iOS應用開發。基於Swift的市場份額越來越大,廣大開發者使用Swift語言開發iOS應用勢在必行。 本書以OS X 10.11為平臺,以Xcode 7.3.1為開發工具,采用理論加實戰的方式,循序漸進地帶領大家開發了一個微博項目。該項目基於新浪微博官方提供的API進行開發,可以更好地幫助大家學習和理解項目結構、新浪微博的認證授權以及新浪API的調用。 本書共分為15章,其中章講解項目搭接的準備工作,包括項目相關介紹、項目的創建、架構的搭接等。第2~14章從項目架構搭接開始,帶領大家開發了微博項目的核心功能。5章介紹了項目測試以及發布的流程。通過本書的學習,相信讀者能夠具備獨自開發iOS應用的能力,成為Swift開發人纔。 本書附有配套視頻、源代碼、教學課件等資源,為了幫助讀者更好地......