《iOS8Swift編程指南》是2015年6月電子工業出版社出版的圖書,作者是楊宏焱。
基本介紹
- 書名:iOS8Swift編程指南
- 作者:楊宏焱
- 出版社:電子工業出版社
- 出版時間:2015年6月
- 頁數:492 頁
- 開本:16(185*235)
- ISBN:9787121260889
- 字數:613千字
- 版次:01-01
內容簡介,圖書目錄,
內容簡介
本書創新性地將語言和框架結合起來介紹。全書分為兩部分:第一部分是 Swift 語言介紹,共4章;第二部分則是iOS 8特性的介紹,從App開發者的角度闡述Swift語言在新SDK上的實際套用。本書在介紹iOS 8每個特性的過程中,配以豐富的Swift代碼案例,以此讓讀者在學習iOS 8的同時,積累大量的 Swift 編碼經驗。
圖書目錄
目錄
第一部分 Swift語言編程指南
第1章 Swift初見2
1.1 什麼是Swift2
1.2 為什麼要學習Swift3
1.3 Objective-C程式設計師學習Swift需要特別關注的地方3
1.3.1 類型推斷與類型安全4
1.3.2 泛型5
1.3.3 數組和字典6
1.3.4 字元串7
1.3.5 switch語句8
1.4 關於Swift初學者的一些問題9
1.4.1 從哪裡獲得Swift9
1.4.2 是否需要先學Objective-C,再學Swift9
1.4.3 “老鳥”們學習Swift是否會更輕鬆10
1.4.4 開發iOS 8和OS X Yosemite程式只能用Swift嗎10
1.4.5 Swift是否能在當前的iOS和OS X版本上工作10
1.4.6 什麼是Playground11
1.4.7 關於NDA11
1.4.8 有Swift能做到而Objective-C無法做到的嗎?反過來說呢11
1.4.9 某些API是否無法被Swift調用11
1.4.10 在Playground中,如何以圖表方式查看變數值12
1.4.11 如何打開REPL13
1.4.12 Swift如何調用Objective-C代碼或第三方庫14
1.4.13 Swift數組只能存儲同一種類型的數據嗎15
1.4.14 字典是否也和數組一樣是強類型的15
1.4.15 Swift中有類似於Objective-C中的id嗎15
1.4.16 在 Swift中,如何自省15
1.4.17 在Swift中如何使用GCD16
1.4.18 Objective-C中提供的Internationalization宏是否仍然可用16
1.4.19 仍然需要注意持有循環嗎17
1.4.20 何時使用strong、weak以及unowned17
第2章 Swift語法基礎18
2.1 Playground18
2.2 常量、變數、字元串21
2.2.1 常量21
2.2.2 變數21
2.2.3 分號22
2.2.4 字元串22
2.2.5 字元串插值和運算23
2.3 簡單類型和類型推斷23
2.3.1 數值類型23
2.3.2 類型轉換25
2.3.3 布爾類型26
2.3.4 區間26
2.3.5 元組27
2.4 流程控制28
2.4.1 for循環28
2.4.2 while語句31
2.4.3 if語句31
2.4.4 switch語句33
第3章 結構和類38
3.1 可空類型38
3.1.1 認識可空38
3.1.2 聲明可空40
3.1.3 可空類型與非可空類型的轉換42
3.2 集合44
3.2.1 數組45
3.2.2 字典47
3.3 枚舉50
3.3.1 定義枚舉時填充原始值50
3.3.2 使用其他類型51
3.3.3 不填充原始值52
3.3.4 聯合53
3.4 結構和類綜述54
3.4.1 屬性54
3.4.2 構造器55
3.4.3 實例方法56
3.4.4 類方法56
3.4.5 下標方法57
3.4.6 繼承59
第4章 Swift函式式編程61
4.1 函式61
4.1.1 函式的定義61
4.1.2 外部參數名62
4.1.3 簡化外部參數名62
4.1.4 默認值63
4.1.5 可變參數64
4.1.6 變數參數和輸出參數64
4.1.7 用函式作為參數65
4.1.8 函式作為返回值66
4.1.9 嵌套函式67
4.2 閉包68
4.2.1 聲明閉包69
4.2.2 匿名閉包69
4.2.3 尾末閉包70
4.2.4 值捕獲70
4.3 協定71
4.3.1 協定的聲明71
4.3.2 實現協定72
4.3.3 協定是一種類型72
4.3.4 組合協定73
4.4 擴展74
4.4.1 聲明擴展74
4.4.2 擴展和協定75
4.5 泛型75
4.5.1 泛型函式76
4.5.2 泛型和協定76
4.5.3 泛型約束77
4.5.4 泛型類型78
4.6 可空鏈79
4.6.1 ?操作符79
4.6.2 ??操作符82
第二部分 iOS 8 SDK
第5章 故事板與自適應布局86
5.1 自適應布局入門86
5.1.1 自適應布局的4個概念87
5.1.2 Universal故事板87
5.1.3 Size類96
5.1.4 自適應字型100
5.1.5 設備相關圖片101
5.2 自適應布局進階102
5.2.1 自適應單元格102
5.2.2 自動安裝視圖108
5.2.3 UITraitCollection類119
5.2.4 覆蓋Size類121
5.2.5 Size相關圖片125
5.2.6 顯示/隱藏導航欄127
5.2.7 UIAppearance和Size類128
第6章 UISplitViewController及旋屏130
6.1 創建UISplitViewController套用131
6.2 在iPhone App中使用UISplitViewController140
6.2.1 創建Detail默認視圖140
6.2.2 在iPhone中展開UISplitViewController143
6.2.3 記住用戶選擇151
6.2.4 單元格指示器154
6.2.5 對iPad進行適應159
6.3 旋屏162
6.3.1 舊的旋屏方法被廢棄162
6.3.2 自定義旋屏效果165
6.3.3 單元格自適應大小167
6.3.4 iPad旋屏169
6.3.5 自適應的UILabel176
第7章 視圖控制器的呈現180
7.1 初始項目181
7.2 內置的Presentation Controller182
7.2.1 UIAlertController183
7.2.2 UIPopoverPresentationController186
7.2.3 UISearchController191
7.3 自定義UIPresentationController196
7.3.1 Presented控制器和Presenting控制器196
7.3.2 創建基本的PresentationController197
7.3.3 自定義轉換動畫200
7.3.4 高級定製206
第8章 今日擴展215
8.1 App擴展介紹215
8.1.1 App擴展的類型216
8.1.2 理解App擴展219
8.2 今日擴展綜述223
8.2.1 介紹今日擴展223
8.2.2 WeatherWidget示例223
8.2.3 討論240
第9章 分享擴展242
9.1 案例項目:SinaWeiboShare242
9.1.1 實現容器App243
9.1.2 創建分享擴展257
9.2 討論267
9.2.1 配置SLComposeSheetConfigurationItem268
9.2.2 分享其他檔案268
第10章 動作擴展269
10.1 案例項目:SearchInICIBA269
10.1.1 實現容器App270
10.1.2 創建動作擴展272
10.2 討論280
第11章 照片編輯擴展281
11.1 案例項目:PhotoVintage281
11.1.1 實現容器App282
11.1.2 實現照片編輯擴展282
11.2 討論292
第12章 文檔提供者擴展294
12.1 準備295
12.1.1 工作機制295
12.1.2 文檔提供者擴展支持的4種操作296
12.2 Bmob雲服務297
12.2.1 註冊Bmob297
12.2.2 創建套用297
12.2.3 獲取App Key298
12.2.4 Bmob SDK299
12.3 開始299
12.3.1 添加擴展App299
12.3.2 配置Info.plist和entitlements300
12.4 加入Bmob SDK框架301
12.4.1 添加CocoaPods框架301
12.4.2 橋接頭檔案304
12.4.3 上傳圖片到Bmob305
12.4.4 實現Document Picker308
12.4.5 實現宿主App314
12.4.6 實現File Provider319
12.5 討論322
第13章 鍵盤擴展323
13.1 準備323
13.2 鍵盤擴展的限制323
13.3 值得信任324
13.4 網路訪問325
13.5 開始326
13.5.1 創建鍵盤擴展326
13.5.2 顯示鍵盤327
13.5.3 設計按鈕及布局329
13.6 實現KeyboardViewController331
13.6.1 創建連線331
13.6.2 實現按鍵處理332
13.6.3 大小寫轉換334
13.6.4 切換符號集335
13.6.5 按鍵動畫336
13.6.6 鍵盤最終運行效果336
13.7 討論337
第14章 CloudKit338
14.1 準備339
14.1.1 用戶授權339
14.1.2 iCloud容器340
14.1.3 資料庫340
14.1.4 Zone340
14.1.5 記錄341
14.1.6 訂閱341
14.2 開始342
14.2.1 打開iCloud342
14.2.2 程式主界面343
14.2.3 全局對象344
14.2.4 獲取用戶ID及姓名345
14.2.5 將數據封裝為CKRecord350
14.2.6 上傳照片353
14.2.7 查看已經上傳的圖片359
14.3 高級API361
14.3.1 不完全抓取362
14.3.2 分頁抓取363
14.3.3 抓取並快取圖片367
14.3.4 錯誤處理及網路重試371
14.3.5 CloudKit Dashboard372
14.4 討論373
第15章 Photos框架375
15.1 Photos初步375
15.1.1 模型對象376
15.1.2 抓取概述376
15.1.3 檢索內容377
15.1.4 初始項目377
15.1.5 獲取用戶授權378
15.1.6 抓取379
15.1.7 顯示圖片384
15.1.8 快取387
15.1.9 標記用戶選擇390
15.2 Photos進階392
15.2.1 API介紹393
15.2.2 初始項目394
15.2.3 創建新的拼接圖396
15.2.4 顯示拼接圖400
15.2.5 收藏和刪除403
15.2.6 增加修訂記錄405
15.2.7 讀取修訂記錄406
15.2.8 註冊變更通知409
15.2.9 監聽變更通知409
15.2.10 讓SpliceListVC處理變更通知411
15.2.11 讓PhotoPicker處理變更通知413
15.3 討論414
第16章 Handoff415
16.1 Handoff基礎416
16.2 開始416
16.2.1 Handoff兼容性417
16.2.2 測試Handoff418
16.2.3 初始項目419
16.2.4 設定Team ID420
16.2.5 添加活動類型421
16.3 view活動422
16.3.1 創建活動並開始廣播422
16.3.2 更新用戶活動423
16.3.3 停止廣播423
16.4 edit活動424
16.4.1 創建活動並開始廣播424
16.4.2 更新用戶活動425
16.4.3 停止廣播425
16.5 恢復用戶活動426
16.5.1 在應用程式委託中接收Handoff廣播426
16.5.2 恢復view活動428
16.5.3 恢復edit活動429
16.6 討論430
第17章 WebKit432
17.1 開始433
17.1.1 初始項目433
17.1.2 創建WKWebView實例433
17.1.3 載入Web頁434
17.1.4 監視頁面載入進度434
17.1.5 頁面導航436
17.1.6 WKNavigationDelegate協定436
17.2 WebKit進階439
17.2.1 腳本調試工具439
17.2.2 隱藏網頁內容440
17.2.3 抓取頁面內容444
17.2.4 顯示PopoverController448
17.3 討論450
第18章 Living Rendering452
18.1 Living Rendering初步453
18.1.1 開啟Living Redering特性453
18.1.2 暴露@IBInspectable屬性454
18.1.3 繪製boxLayer層456
18.1.4 繪製markLayer層457
18.1.5 繪製文本圖層459
18.2 Living Rendering進階461
18.2.1 使用點陣圖461
18.2.2 回響事件462
18.3 討論463
第19章 Visual Effects464
19.1 Visual Effects初步464
19.1.1 初始項目465
19.1.2 使用Visual Effect View實現模糊特效465
19.1.3 使用Visual Effect View實現Vibrancy效果467
19.2 Visual Effects進階469
19.2.1 使用UIBlurEffect實現模糊效果469
19.2.2 使用UIVibrancyEffect實現Vibrancy效果471
19.3 討論473