上篇 Swift語言基礎篇
第1章 Swift語言介紹 2
1.1 Swift語言介紹 2
1.2 Swift和Objective-C語言對比 3
1.3 Swift優秀的特性 5
1.4 使用Xcode建立Swift項目 9
1.5 Swift使用Playground 13
第2章 基礎知識 16
2.1 常量與變量 16
2.1.1 常量和變量的聲明 16
2.1.2 常量或變量的類型 17
2.1.3 常量和變量的命名 17
2.1.4 常量和變量的輸齣 18
2.1.5 字符串的連接輸齣 19
2.1.6 注釋 19
2.1.7 分號 20
2.1.8 漢字命名方式 20
2.2 類型定義 20
2.2.1 整型 20
2.2.2 浮點型 21
2.2.3 自定義類型typealias 22
2.2.4 類型安全及類型推導 22
2.2.5 常數和數值進製的錶示方法 22
2.2.6 類型轉換 23
2.2.7 類型彆名 24
2.2.8 布爾類型 25
2.2.9 元組Tube 25
2.3 可選類型Optional 26
2.3.1 可選類型的聲明 27
2.3.2 可選類型的賦值 27
2.3.3 可選類型的使用 27
2.3.4 可選類型nil的使用 28
2.4 基本運算符 28
2.4.1 賦值運算符 28
2.4.2 算術運算符 28
2.4.3 復閤運算符 31
2.4.4 比較運算符 31
2.4.5 三目運算符 32
2.4.6 區間運算符 32
2.4.7 邏輯運算符 33
2.4.8 斷言Assert操作 34
第3章 字符串、數組、字典 35
3.1 字符串 35
3.1.1 字符串字麵量 35
3.1.2 字符串的連接 36
3.1.3 字符串與其他數據類型的拼接 36
3.1.4 字符串相關操作方法 37
3.1.5 與其他類型的轉換 38
3.2 數組 39
3.2.1 數組的聲明及初始化 39
3.2.2 數組元素的訪問與修改 41
3.2.3 數組的遍曆 42
3.2.4 數組元素的插入與刪除 42
3.3 字典 43
3.3.1 字典的聲明及初始化 44
3.3.2 字典元素的訪問與修改 44
3.3.3 字典的遍曆 45
第4章 控製語句和函數 47
4.1 分支結構 47
4.1.1 if條件語句 47
4.1.2 switch語句 48
4.2 語句的作用域 50
4.3 循 環 結 構 51
4.3.1 for循環 51
4.3.2 forin循環 51
4.3.3 while循環 52
4.3.4 do-while循環 52
4.4 跳轉語句及塊標簽 53
4.4.1 continue語句 53
4.4.2 break語句 53
4.4.3 fallthrough語句 54
4.5 函數 54
4.5.1 函數的定義及調用方法 55
4.5.2 函數的參數 55
4.5.3 函數的返迴值 57
4.5.4 函數的變量參數 58
4.5.5 函數的類型 58
4.5.6 函數的嵌套 59
第5章 枚舉和結構體 60
5.1 枚舉 60
5.1.1 枚舉的聲明 60
5.1.2 枚舉的值 60
5.1.3 枚舉的使用方法 62
5.2 結構體 63
5.2.1 結構體的聲明和定義 63
5.2.2 結構體的構造方法 63
5.2.3 結構體的賦值和取值 64
5.2.4 結構體的嵌套 64
5.2.5 結構體是值拷貝類型 65
第6章 類 66
6.1 類的聲明與定義 66
6.1.1 類對象的創建 66
6.1.2 類的屬性的訪問 67
6.1.3 類的相互引用 67
6.1.4 類的嵌套 67
6.1.5 類是引用類型 68
6.1.6 恒等操作符(===/!===) 68
6.1.7 類的哈希 69
6.1.8 集閤類型對象之間的賦值和拷貝 69
6.2 屬性 71
6.2.1 對象屬性 71
6.2.2 運算屬性 76
6.2.3 類屬性 77
6.3 方法 77
6.3.1 對象方法 77
6.3.2 類方法 80
6.4 subscript下標 81
6.4.1 subscript的作用 81
6.4.2 subscript的聲明 82
6.4.3 subscript的使用方法 82
6.4.4 subscript使用方法的例子 82
第7章 繼承 85
7.1 繼承實例分析 85
7.2 重寫 88
7.2.1 重寫方法 89
7.2.2 重寫屬性 89
7.2.3 重寫屬性觀察器 91
7.2.4 super關鍵字 93
7.2.5 final關鍵字 95
7.3 構造方法 97
7.3.1 構造方法的基本語法 97
7.3.2 構造方法的參數名稱 98
7.3.3 屬性的缺省值 99
7.3.4 結構體的構造方法 100
7.3.5 枚舉類型的構造方法 101
7.3.6 值類型的構造方法代理 102
7.3.7 可選類型屬性與構造方法 103
7.3.8 常量屬性與構造方法 104
7.3.9 通過閉包或者函數設置屬性的缺省值 105
7.3.10 派生類的構造方法 107
7.3.11 構造方法的重寫 113
7.3.12 構造方法的自動繼承 115
7.3.13 必須構造方法 118
7.4 析構方法 119
7.4.1 析構方法語法 119
7.4.2 析構方法的自動繼承 120
7.5 類擴展 121
7.5.1 類擴展的語法 121
7.5.2 擴展運算屬性 121
7.5.3 擴展構造方法 122
7.5.4 擴展普通方法 122
7.5.5 擴展下標 123
第8章 自動引用計數 125
8.1 自動引用計數的工作機製 125
8.2 自動引用計數實戰 126
8.3 對象之間的循環強引用 129
8.4 解決對象之間的循環強引用 131
8.4.1 弱引用weak 131
8.4.2 無主引用unowner 134
8.4.3 無主引用以及顯式展開的可選屬性 136
8.5 閉包引起的循環強引用 137
8.6 解決閉包引起的循環強引用 140
8.6.1 定義占有列錶 140
8.6.2 弱引用和無主引用 141
第9章 可選鏈和類型轉換 143
9.1 可選鏈 143
9.1.1 可選鏈可替代強製解析 143
9.1.2 為可選鏈定義模型類 145
9.1.3 通過可選鏈調用屬性 146
9.1.4 通過可選鏈調用方法 147
9.1.5 使用可選鏈調用下標 147
9.1.6 可選鏈多層鏈接 148
9.1.7 鏈接自判斷返迴值的方法 149
9.2 類型轉換 150
9.2.1 子類的對象賦值為基類 150
9.2.2 類型檢查 151
9.2.3 類型轉換 151
9.2.4 Any和AnyObject類型轉換 152
第10章 協議 155
10.1 協議的語法 155
10.1.1 屬性要求 155
10.1.2 方法要求 157
10.1.3 Mutating方法要求 157
10.1.4 使用協議規範構造函數 158
10.1.5 實現構造協議的類 158
10.1.6 協議類型 159
10.2 委托/代理設計模式 160
10.3 協議的各種使用 163
10.3.1 在擴展中添加協議成員 163
10.3.2 通過擴展補充協議聲明 164
10.3.3 集閤中的協議類型 164
10.3.4 僅在類中使用協議 165
10.4 協議的繼承 165
10.4.1 協議閤成 166
10.4.2 檢驗協議的一緻性 167
10.4.3 可選協議要求 168
第11章 閉包和操作符重載 171
11.1 閉包錶達式 171
11.1.1 sorted函數 171
11.1.2 閉包錶達式語法 172
11.1.3 根據上下文推斷參數類型 173
11.1.4 單錶達式閉包隱式返迴 173
11.1.5 參數名稱縮寫 173
11.1.6 運算符函數 174
11.2 尾部閉包 174
11.2.1 訪問上下文值 176
11.2.2 閉包是引用類型 177
11.3 運算符重載 178
11.3.1 中置運算符函數 178
11.3.2 前置和後置運算符 179
11.3.3 組閤賦值運算符 179
11.3.4 比較運算符 180
11.3.5 自定義運算符 180
11.3.6 自定義中置運算符的優先級和結閤性 181
11.4 泛型 182
11.4.1 泛型解決的問題 182
11.4.2 泛型類型 184
11.4.3 關聯類型 190
11.5 Swift和Objective-C交互 194
11.5.1 Swift調用Objective-C函數 194
11.5.2 Objective-C 調用Swift程序 197
下篇 Swift UI設計篇
第12章 第一個UI項目 202
12.1 創建工程 202
12.2 Xcode工程界麵 204
12.3 代碼及運行 205
12.4 運行 207
第13章 UIView視圖 208
13.1 UIView的創建 208
13.2 CGRect詳解 209
13.3 UIColor的使用 211
13.4 UIView的顯示 214
13.5 父視圖與子視圖 214
13.5.1 概念 214
13.5.2 多視圖 215
13.5.3 UIView的透明度屬性 216
13.6 UIView其他操作 216
13.6.1 子視圖數組 216
13.6.2 添加子視圖的其他方法 217
13.6.3 子視圖的層次的改變方法 219
13.6.4 UIView的簡單動畫 220
13.7 UIView的tag屬性 223
13.8 UIView的移除 224
第14章 iOS中的各種控件 226
14.1 UILabel標簽 226
14.1.1 UILabel的創建 226
14.1.2 UILabel的背景顔色和文字顔色 226
14.1.3 設置文本對齊方式 227
14.1.4 文字大小與標簽寬度的自適應 228
14.1.5 行數與換行設置 230
14.1.6 UIFont字體的使用 232
14.1.7 文字陰影的設置 237
14.2 UIButton按鈕控件 237
14.2.1 按鈕的創建 237
14.2.2 UIButton的文字及顔色設置 238
14.2.3 State按鈕的狀態 240
14.2.4 Type按鈕的類型 242
14.2.5 UIImage類的使用及給按鈕添加圖片 243
14.2.6 給按鈕添加事件響應 252
14.3 UIImageView圖片視圖 258
14.3.1 UIImageView的創建並顯示圖片 258
14.3.2 UIImageView顯示圖片的拉伸設置 261
14.3.3 使用UIImageView實現動畫 262
14.3.4 UIImageView的用戶響應 265
14.4 UITextField單行文本框 267
14.4.1 UITextField創建 267
14.4.2 UITextField屬性設置 268
14.4.3 鍵盤 275
14.4.4 UITextField響應用戶事件 278
14.4.5 UITextField監控輸入內容 280
第15章 UIViewControler視圖控製器 285
15.1 創建視圖控製器 285
15.2 視圖控製器的産生過程 288
15.3 視圖控製器的切換 290
15.3.1 彈齣界麵 290
15.3.2 迴收界麵 292
15.4 視圖控製器的生命周期 293
15.5 視圖控製器的切換動畫 294
第16章 UINavigationController導航欄控製器 297
16.1 導航欄控製器概述 297
16.2 導航欄控製器的創建 298
16.3 導航欄 299
16.3.1 導航欄的標題 299
16.3.2 導航欄的背景顔色 300
16.3.3 導航欄的背景圖片 300
16.3.4 導航欄的透明 302
16.3.5 導航欄的隱藏 303
16.4 視圖控製器之間的切換 304
16.4.1 push 304
16.4.2 pop 306
16.5 navigationItem屬性詳解 312
16.5.1 提示區域 312
16.5.2 標題區域 312
16.5.3 設置右側按鈕 315
16.5.4 設置左側按鈕 319
16.5.5 設置一組按鈕 321
16.5.6 設置返迴按鈕 322
16.6 UIToolBar的使用詳解 325
16.6.1 係統自帶的工具欄 325
16.6.2 使用工具欄 326
16.6.3 自定義工具欄 328
第17章 界麵之間的傳值 330
17.1 正嚮傳值 330
17.2 反嚮傳值 331
17.2.1 協議代理 332
17.2.2 閉包 334
第18章 UITabBarController標簽欄控製器 337
18.1 標簽欄控製器概述 337
18.2 標簽欄控製器的創建 337
18.3 標簽的創建 340
18.3.1 通過tabBarItem屬性設置 340
18.3.2 自定義UITabBarItem 342
18.4 當創建的標簽超過5個時的狀態 344
18.5 標簽欄控製器代理 346
18.5.1 捕捉編輯完成狀態 346
18.5.2 捕捉標簽選擇的動作 348
18.6 標簽欄控製器的其他屬性設置 349
18.6.1 標簽的徽標 349
18.6.2 手動選擇標簽 349
18.7 NSUserDefault本地化存儲 350
第19章 UIScrollView滾動視圖 352
19.1 UIScrollView的創建 352
19.2 滾動條的設置 353
19.2.1 滾動條的樣式 354
19.2.2 滾動條的隱藏 354
19.3 滾動邊界反彈效果 355
19.4 偏移量 356
19.5 滾動視圖的代理方法 356
19.5.1 縮放 357
19.5.2 監控滾動視圖的滾動 358
19.6 分屏滾動 359
19.7 引導頁的實現 360
19.8 UIPageControl控件 363
19.8.1 創建方式 363
19.8.2 隨著滾動視圖的滾動改變當前頁 363
19.8.3 設置顯示效果 364
第20章 UITableView錶視圖 367
20.1 UITableView概述 367
20.1.1 UITableView的創建及顯示 367
20.1.2 UITableView的頭視圖 368
20.1.3 UITableView的腳視圖 369
20.1.4 UITableView的數據源 370
20.1.5 UITableView的分隔綫 371
20.1.6 UITableViewCell單元格 373
20.1.7 UITableView的代理 377
20.1.8 UITableView的復用機製 379
20.2 NSIndexPath 380
20.3 多分區tableView 380
20.3.1 多分區tableView的創建 380
20.3.2 分區頭標題 382
20.3.3 分區腳標題 383
20.3.4 分區頭視圖及頭視圖的高度 384
20.3.5 分區腳視圖及腳視圖的高度 385
20.4 UITableView行編輯 386
20.4.1 設置cell為編輯狀態 386
20.4.2 修改cell的編輯狀態 388
20.4.3 cell的響應編輯及左滑編輯功能 389
20.4.4 cell的刪除 391
20.4.5 cell的增加 391
20.5 UITableView索引 392
20.6 UITableView搜索 395
20.6.1 搜索框 395
20.6.2 搜索顯示控製器 395
20.7 UITableViewCell的定製 402
20.7.1 純代碼實現 404
20.7.2 xib實現定製 407
· · · · · · (
收起)