第1章 歡迎來到Swift語言的世界 1
1.1 起源 2
1.2 什麼是Swift語言 3
1.3 特性 3
1.3.1 高級 3
1.3.2 易上手 4
1.3.3 兼容性 4
1.3.4 運行效率 4
1.3.5 運行時(Runtime) 5
1.3.6 可混編 5
1.3.7 開發工具 5
1.4 搭建Swift開發環境 5
1.4.1 Mac OS簡介 6
1.4.2 Mac OS 下載安裝 6
1.4.3 下載並安裝Xcode 9
1.4.4 iOS開發者計劃 11
1.5 熟悉Xcode及模擬器環境 11
1.5.1 升級和改變 11
1.5.2 第一個Swift語言程序 12
1.5.3 源代碼文件基本組成 15
1.5.4 Xcode集成開發環境 16
1.5.5 iOS模擬器 17
1.5.6 體驗Playground 18
1.6 Apple産品曆史 20
1.7 小結 21
第2章 Swift基礎語法 22
2.1 語法入門 22
2.1.1 變量與常量 23
2.1.2 整型 24
2.1.3 浮點型 25
2.1.4 布爾型 26
2.1.5 字符串和字符 27
2.1.6 可選(optional) 34
2.1.7 元組 37
2.1.8 類型彆名 38
2.1.9 類型轉換 38
2.1.10 斷言(assertion) 40
2.2 運算符 42
2.2.1 基礎運算符 42
2.2.2 高級運算符 50
2.2.3 自定義運算符 55
2.2.4 運算符優先級和結閤性 55
2.3 復雜數據類型 57
2.3.1 數組 57
2.3.2 字典 59
2.3.3 結構體 59
2.3.4 枚舉 61
2.4 控製流 62
2.4.1 條件結構 62
2.4.2 值綁定(Value Bindings) 66
2.4.3 循環結構 67
2.4.4 控製轉嚮語句 71
2.5 函數 74
2.5.1 函數的定義和調用 74
2.5.2 函數的形參和返迴值 75
2.6 閉包 78
2.6.1 什麼是閉包 79
2.6.2 trailing閉包 80
2.6.3 捕獲 81
2.7 錶達式 81
2.7.1 基本錶達式 81
2.7.2 前綴錶達式和後綴錶達式 82
2.7.3 錶達式解析 84
2.8 小結 86
第3章 Swift麵嚮對象編程基礎 87
3.1 麵嚮對象編程簡介 87
3.1.1 麵嚮對象編程的基本概念 90
3.1.2 麵嚮對象編程的特點 92
3.1.3 為什麼要使用麵嚮對象編程 93
3.1.4 Swift語言中的麵嚮對象概覽 94
3.2 類、方法、屬性介紹 94
3.2.1 編寫第一個類 94
3.2.2 屬性 96
3.3 方法 108
3.3.1 實例方法 108
3.3.2 類型方法 109
3.3.3 初始化方法和反初始化方法 111
3.3.4 下標腳本 118
3.4 枚舉、類與結構體的對比 121
3.4.1 枚舉與其他兩者的關係 121
3.4.2 類與結構體的關係 122
3.5 小結 124
第4章 Swift語言的語法高級特性 125
4.1 高級麵嚮對象特性 125
4.1.1 繼承 125
4.1.2 多態 130
4.1.3 封裝 134
4.2 麵嚮對象的高級用法 136
4.2.1 類擴展 136
4.2.2 協議 140
4.2.3 類組閤 144
4.3 可選鏈 147
4.3.1 可選概念迴顧 147
4.3.2 可選鏈 149
4.3.3 多級可選鏈 150
4.4 泛型 150
4.5 小結 154
第5章 Swift語言操作Cocoa底層庫 155
5.1 Cocoa開發體係 155
5.1.1 Core OS層 156
5.1.2 Core Service層 156
5.1.3 媒體層 157
5.1.4 UIKit層 158
5.2 Swift語言調用Objective-C 158
5.3 字符串 160
5.3.1 NSString與String互相轉換 160
5.3.2 拆分字符串 161
5.3.3 查找字符串 162
5.4 數字 163
5.5 數組 165
5.5.1 NSArray與Array的互相轉換 165
5.5.2 NSArray的初始化方法 166
5.5.3 NSArray的常用屬性和方法 167
5.6 詞典 170
5.6.1 Dictionary和NSDictionary互相轉換 170
5.6.2 NSDictionay的初始化方法 171
5.6.3 NSDictionary常用的屬性和方法 171
5.7 集 173
5.7.1 初始化 173
5.7.2 常用屬性和方法 174
5.7.3 集閤元素計數 176
5.8 數據存儲NSData 177
5.8.1 創建NSData 177
5.8.2 訪問數據 178
5.8.3 字節數據與Base64編碼字符串相互轉換 179
5.8.4 字節數據存儲 180
5.8.5 NSMutableData 181
5.9 文件 182
5.9.1 應用的目錄結構 183
5.9.2 訪問文件 184
5.9.3 NSURL和NSURLComponents 185
5.9.4 NSFileManager 192
5.9.5 NSFileHandle 200
5.9.6 NSBundle 203
5.10 小結 207
第6章 Swift與Objective-C的互操作 208
6.1 Swift與Objective-C介紹 208
6.1.0 互操作簡介 208
6.2 簡單的互操作實踐 208
6.2.1 Swift中調用Objective- C代碼 209
6.2.2 Swift中調用C代碼 213
6.2.3 Swift項目中的Objective- C代碼調用Swift代碼 214
6.2.4 Objective- C項目中調用Swift代碼 219
6.3 Objective-C代碼庫的調用 220
6.3.1 理解框架代碼相互調用過程 220
6.3.2 KKColorListPicker庫的調用 221
6.3.3 SQLite3的引用 224
6.3.4 在Swift項目中引入GDataXML或DDXML 231
6.3.5 JSON解析及JSONKit的引用 235
6.4 Objective-C項目到Swift項目的遷移 238
6.5 小結 247
第7章 普通UI控件的開發:UIKit第一部分 248
7.1 標簽(UILabel) 248
7.1.1 標簽的創建 248
7.1.2 背景顔色和文字顔色的設置 248
7.1.3 對齊方式的設置 249
7.1.4 文字陰影設置 249
7.1.5 字體的設置 250
7.1.6 文字的省略方式 250
7.1.7 文字的自動調整 251
7.1.8 多行字符串 251
7.2 按鈕(UIButton) 251
7.2.1 按鈕的創建 251
7.2.2 按鈕的文字、顔色和狀態 252
7.2.3 按鈕的圖片 253
7.2.4 按鈕的觸摸事件 254
7.3 文本框(UITextField) 255
7.3.1 文本框的創建 255
7.3.2 設置文本樣式 255
7.3.3 鍵盤設置 256
7.3.4 清除按鈕 258
7.3.5 背景設置 259
7.4 多行文本控件(UITextView) 259
7.4.1 創建多行文本控件 259
7.4.2 設置文字 259
7.4.3 光標和選擇範圍 260
7.4.4 委托事件 261
7.5 開關按鈕(UISwitch) 262
7.6 選擇控件(UISegmentedControl) 263
7.6.1 選擇控件的創建 263
7.6.2 選擇控件基本設置 264
7.6.3 選擇控件選項的插入和刪除 264
7.6.4 選擇控件獲得選擇的值 264
7.7 圖像控件(UIImageView) 265
7.7.1 圖片的顯示 265
7.7.2 使用圖像控件實現動畫 266
7.8 進度條(UIProgressView) 267
7.9 滑塊(UISlider) 268
7.9.1 滑塊的創建 268
7.9.2 滑塊的值通知機製 269
7.9.3 製定滑塊樣式 269
7.10 警告框(UIAlertView)與操作錶(UIActionSheet) 270
7.10.1 警告框的使用 270
7.10.2 警告框的委托事件 272
7.10.3 操作錶的使用 272
7.10.4 操作錶的委托事件 273
7.11 選擇框(UIPickerView) 274
7.11.1 建立選擇框 274
7.11.2 調整選擇框的尺寸 277
7.11.3 選擇框選項內容 278
7.11.4 檢測行的選擇狀態 278
7.12 微調器(UIStepper) 279
7.12.1 微調器的基本設置 279
7.12.2 微調器的外觀設置 280
7.13 滾動視圖(UIScrollView) 281
7.13.1 滾動視圖的創建 281
7.13.2 放大縮小 282
7.13.3 頁單位的滾動 283
7.14 加速度傳感器(CoreMotion) 285
7.14.1 加速度傳感器介紹 285
7.14.2 使用加速度傳感器實現滾球效果 286
7.15 各種手勢檢測(UIGestureRecognizer以及具體識彆器) 288
7.15.1 UIGestureRecognizer的基本用法 288
7.15.2 UITapGestureRecognizer 輕點手勢 290
7.15.3 UIPinchGestureRecognizer 捏閤手勢 290
7.15.4 UIRotationGestureRecognizer鏇轉手勢 291
7.15.5 UIPanGestureRecognizer拖動手勢 291
7.16 小結 292
第8章 高級UI:UIKit第二部分 293
8.1 日期選擇器(UIDatePicker) 293
8.1.1 控件介紹 293
8.1.2 UIDatePicker 時間日期顯示實例 294
8.1.3 UIDatePicker倒計時顯示實例 297
8.2 網頁控件(UIWebView) 301
8.2.1 UIWebView控件詳解 301
8.2.2 UIWebView基本實例 303
8.2.3 UIWebView 瀏覽器實例 306
8.3 工具條(UIToolbar) 309
8.3.1 工具條控件介紹 309
8.3.2 工具條控件操作實例 310
8.3.3 自製小型瀏覽器 311
8.4 錶格(UITableView) 317
8.4.1 UITableView介紹 317
8.4.2 錶格控件簡單示例 319
8.4.3 錶格控件屬性詳解 322
8.4.4 自定義單元格詳解 330
8.4.5 錶格的編輯 348
8.4.6 類微信聊天界麵的設計 351
8.5 搜索條(UISearchBar) 359
8.5.1 控件介紹 359
8.5.2 搜索條簡單示例 360
8.5.3 搜索條屬性 364
8.5.4 利用UISearchDisplayController 364
8.6 導航條(UINavigationBar)與導航條控製器
(UINavigationController) 369
8.6.1 導航介紹 369
8.6.2 導航條示例 369
8.6.3 使用segue圖形化設計導航 376
8.7 網格(UICollectionView)與網格控製器
(UICollectionViewController) 378
8.7.1 網格介紹 378
8.7.2 網格屬性 378
8.7.3 流布局簡單示例 379
8.7.4 自定義布局實現復雜界麵 380
8.8 標簽條(UITabBar)與標簽頁控製器(UITabBarController) 386
8.8.1 標簽頁介紹 386
8.8.2 使用storyboard設計標簽頁 386
8.8.3 代碼實現標簽頁 388
8.9 頁控件(UIPageControl)與頁控製器(UIPageViewController) 390
8.9.1 頁控件介紹 390
8.9.2 UIPageControl與UIScrollView結閤使用 390
8.9.3 UIPageViewController實現翻頁 393
8.10 故事闆(UIStoryboard) 397
8.10.1 故事闆介紹 397
8.10.2 故事闆設計 398
8.10.3 故事闆編程 399
8.11 分割視圖控製器(UISplitViewController) 400
8.11.1 分割視圖控製器介紹 400
8.11.2 分割視圖控製器示例 401
8.11.3 開發兼容的iOS應用 403
8.12 UIActivity分享 404
8.12.1 UIActivity介紹 404
8.12.2 定製UIActivity分享 405
8.13 小結 407
第9章 2048遊戲實戰開發 408
9.1 編寫遊戲界麵 408
9.1.1 入口界麵 409
9.1.2 遊戲主界麵 411
9.1.3 遊戲設置界麵 418
9.2 建立遊戲模型 422
9.2.1 遊戲模型簡介 422
9.2.2 遊戲數據的存儲 423
9.2.3 遊戲數據的變更 429
9.3 遊戲效果實現 435
9.3.1 閃現數字的動畫 435
9.3.2 數字響應方嚮重排 439
9.3.3 閤並數字實現與動畫 448
9.4 遊戲個性化設置 454
9.4.1 本地數據庫的建立 454
9.4.2 個性化數據的保存 458
9.4.3 遠程保存最高分 462
9.5 其他實戰項目相關內容 468
9.5.1 項目屬性介紹 468
9.5.2 應用圖標和啓動界麵的設置 472
9.5.3 新手引導的製作 476
9.6 小結 479
第10章 程序模型與事件機製 480
10.1 MVC模式 480
10.1.1 MVC介紹 481
10.1.2 MVC在iOS開發中的具體使用 482
10.1.3 MVC在Swift 2048項目中體現 483
10.2 事件機製 484
10.2.1 iOS事件機製介紹 484
10.2.2 iOS開發事件的傳遞機製 487
10.3 簡單設計模式 488
10.3.1 設計模式簡介 489
10.3.2 常見設計模式 489
10.3.3 Swift 2048所用的模式 490
10.4 小結 491
第11章 真機測試及發布上架 492
11.1 真機測試 492
11.2 開發上架 495
11.2.1 生成發布到App Store的證書 495
11.2.2 到iTunes Connect網站提交應用說明 501
11.2.3 應用簽名和打包 505
11.3 小結 511
後記 512
· · · · · · (
收起)