《SwiftUI自學成長筆記》是電子工業出版社出版圖書,作者是劉銘 等。
以實戰為基礎的 iOS 應用程式開發教程,以項目實戰的方式教會讀者如何運用全新的 Xcode 12和 SwiftUI 2.0 框架開發商業級別的 iOS 和 iPadOS 應用程式
基本介紹
- 中文名:SwiftUI自學成長筆記
- 作者:劉銘 等
- 出版社:電子工業出版社
- 出版時間:2021年9月
- 頁數:450 頁
- 定價:99 元
- 開本:16 開
- ISBN:9787121418228
內容簡介,圖書目錄,作者簡介,
內容簡介
結合了 8 個應用程式案例,讓讀者在模仿和學習的過程中快速地找到實戰的感覺。本書內容翔實、結構清晰、循序漸進,將基礎知識與案例實戰緊密結合,既可作為 iOS 初學者的入門教材,也適合中高級用戶進一步學習新技術
圖書目錄
第 1 章 我的第一個 iOS 應用程式 .................................................................................. 1
1.1 使用 Xcode 快速創建項目 ........................................................................................... 1
1.1.1 為項目添加程式圖示和相關圖片素材 ............................................................. 3
1.1.2 為項目添加預定義顏色 ..................................................................................... 5
1.1.3 為項目添加圖片素材 ......................................................................................... 7
1.2 創建啟動畫面 ............................................................................................................... 9
1.3 創建卡片視圖布局 ..................................................................................................... 10
1.3.1 創建 CardView ................................................................................................. 10
1.3.2 創建線性漸變色背景 ....................................................................................... 14
1.3.3 為 CardView 添加圖像和文本 ........................................................................ 15
1.3.4 為 CardView 添加按鈕 .................................................................................... 17
1.4 循環生成多張卡片視圖.............................................................................................. 21
1.5 為卡片創建數據模型 ................................................................................................. 22
1.5.1 創建卡片數據模型 ........................................................................................... 23
1.5.2 為靜態數據創建數組 ....................................................................................... 24
1.5.3 在卡片中顯示數據信息 ................................................................................... 24
1.6 在應用程式中播放聲音.............................................................................................. 28
1.7 創建動畫效果 ............................................................................................................. 29
1.7.1 為卡片人物創建淡入動畫 ............................................................................... 29
1.7.2 為標題創建下滑入動畫效果 ........................................................................... 31
1.7.3 為按鈕創建上滑入動畫效果 ........................................................................... 31
1.8 為應用程式添加觸控反饋效果 .................................................................................. 33
1.9 呈現警告對話框 ......................................................................................................... 34
1.10 為應用程式創建 iMessage 貼圖 ............................................................................... 36
第 2 章 這裡是北京 ...................................................................................................... 40
2.1 使用 Xcode 創建項目 ................................................................................................. 40
2.1.1 為項目添加程式圖示和相關圖片素材 ........................................................... 41
2.1.2 為項目添加適配顏色集和圖像集 ................................................................... 42
2.2 創建支持淺色和深色模式的啟動畫面 ...................................................................... 46
2.2.1 創建 Launch Screen 故事板 ............................................................................. 46
2.2.2 設計 Launch Screen 用戶界面 ......................................................................... 48
2.2.3 在項目中設定啟動畫面 ................................................................................... 51
2.3 創建 Tab View 導航 .................................................................................................... 52
2.3.1 創建 4 個場景視圖 ........................................................................................... 53
2.3.2 創建 Tab View .................................................................................................. 54
2.4 創建北京簡介視圖 ..................................................................................................... 55
2.4.1 創建簡介視圖 .................................................................................................. 55
2.4.2 為簡介視圖添加動畫效果 ............................................................................... 58
2.5 創建小吃視圖頁面 ..................................................................................................... 59
2.5.1 設計橫幅視圖布局 ........................................................................................... 59
2.5.2 創建橫幅滾動視圖 ........................................................................................... 62
2.5.3 獲取 HeaderView 所需的靜態數據 ................................................................. 63
2.5.4 創建靈活的表格式布局 ................................................................................... 65
2.5.5 創建橫幅滾動視圖 ........................................................................................... 71
2.5.6 創建特色小吃店卡片視圖 ............................................................................... 75
2.5.7 創建小吃店詳細頁面視圖 ............................................................................... 82
2.5.8 使用 Sheet 修飾器呈現新的視圖 .................................................................... 87
2.6 創建胡同視圖頁面 ..................................................................................................... 89
2.7 使用 SwiftUI 設計表單 ............................................................................................... 95
第 3 章 蔬菜百科全書 ................................................................................................ 100
3.1 使用 Xcode 快速創建項目 ....................................................................................... 100
3.1.1 設定 iOS 設備的螢幕允許方向..................................................................... 101
3.1.2 為項目添加程式圖示和蔬菜圖片 ................................................................. 102
3.1.3 為項目添加顏色集 ......................................................................................... 104
3.1.4 在模擬器中查看效果 ..................................................................................... 106
3.2 利用 Page Tab View 創建引導畫面 .......................................................................... 106
3.2.1 整理項目檔案的結構 ..................................................................................... 107
3.2.2 創建可復用的蔬菜卡片視圖 ......................................................................... 107
3.2.3 創建自定義外觀按鈕 ..................................................................................... 111
3.2.4 為蔬菜卡片增加動畫效果 ............................................................................. 113
3.2.5 創建蔬菜卡片分頁視圖 ................................................................................. 114
3.3 創建數據模型和獲取數據 ........................................................................................ 116
3.3.1 創建數據模型 ................................................................................................ 116
3.3.2 創建蔬菜數據 ................................................................................................ 117
3.3.3 在蔬菜卡片中顯示蔬菜數據 ......................................................................... 117
3.3.4 在引導頁面中顯示蔬菜數據 ......................................................................... 119
3.4 使用 AppStorage 封裝器存儲數據 ........................................................................... 120
3.4.1 SwiftUI 中應用程式的生存期 ....................................................................... 121
3.4.2 完成按鈕的執行代碼 ..................................................................................... 124
3.5 通過循環創建列表視圖............................................................................................ 125
3.5.1 創建行視圖 .................................................................................................... 125
3.5.2 創建列表視圖 ................................................................................................ 128
3.5.3 設定導航視圖的屬性 ..................................................................................... 130
3.6 創建蔬菜的詳情視圖 ............................................................................................... 130
3.6.1 創建視圖檔案 ................................................................................................ 130
3.6.2 添加導航連結 ................................................................................................ 131
3.6.3 設計詳情頁面視圖 ......................................................................................... 132
3.6.4 創建獨立的蔬菜圖片視圖 ............................................................................. 135
3.6.5 在詳情頁面中調用蔬菜圖片視圖 ................................................................. 137
3.6.6 創建連結視圖 ................................................................................................ 139
3.6.7 創建蔬菜分類視圖 ......................................................................................... 141
3.6.8 Disclosure Group 的使用 ............................................................................... 141
3.7 創建 App 的設定頁面 ............................................................................................... 144
3.7.1 創建 SettingsView .......................................................................................... 145
3.7.2 為設定視圖添加關閉功能 ............................................................................. 146
3.7.3 為列表視圖添加開啟設定頁面功能 ............................................................. 147
3.7.4 完善設定頁面的第一部分功能 ..................................................................... 148
3.7.5 實現設定頁面的第三部分功能 ..................................................................... 150
3.7.6 實現設定頁面的第二部分功能 ..................................................................... 154
第 4 章 名勝古蹟 App ................................................................................................ 158
4.1 使用 Xcode 創建名勝古蹟項目 ............................................................................... 158
4.1.1 添加圖片和視頻素材 ..................................................................................... 159
4.1.2 添加 JSON 格式的數據檔案 ......................................................................... 161
4.1.3 設定程式的啟動畫面 ..................................................................................... 162
4.1.4 創建 TabView ................................................................................................. 163
4.2 解析 JSON 格式檔案並獲取相應數據 .................................................................... 165
4.2.1 橫幅封面視圖 ................................................................................................ 165
4.2.2 JSON 相關知識 .............................................................................................. 166
4.2.3 解析 JSON 數據 ............................................................................................. 168
4.2.4 使用 JSON 數據生成封面圖片 ..................................................................... 170
4.3 利用 Swift 範式創建 SwiftUI 列表 .......................................................................... 172
4.3.1 設計瀏覽頁面列表視圖的行布局 ................................................................. 172
4.3.2 創建數據模型 ................................................................................................ 174
4.3.3 Swift 的範式 ................................................................................................... 174
4.3.4 實現動態數據行信息的設定 ......................................................................... 175
4.4 創建名勝古蹟的詳細視圖 ........................................................................................ 177
4.4.1 初步創建詳細視圖 ......................................................................................... 178
4.4.2 設計橫幅圖片、標題和提要 ......................................................................... 180
4.4.3 創建可復用的 Heading 視圖 ......................................................................... 181
4.4.4 創建畫冊視圖 ................................................................................................ 183
4.4.5 使用 NavigationLink 創建連結 ..................................................................... 185
4.4.6 創建相關信息視圖 ......................................................................................... 186
4.4.7 創建地圖視圖 ................................................................................................ 188
4.4.8 創建連結組件 ................................................................................................ 192
4.5 創建視頻播放視圖 ................................................................................................... 194
4.5.1 創建數據模型和行視圖 ................................................................................. 194
4.5.2 生成列表視圖 ................................................................................................ 197
4.5.3 觸控反饋 ........................................................................................................ 200
4.5.4 創建視頻播放頁面 ......................................................................................... 201
4.5.5 視頻播放頁面的附加設定 ............................................................................. 204
4.5.6 為視頻瀏覽頁面添加連結 ............................................................................. 206
4.6 創建帶有標註的複雜地圖 ........................................................................................ 207
4.6.1 創建數據模型 ................................................................................................ 207
4.6.2 創建複雜地圖 ................................................................................................ 207
4.6.3 自定義標註 .................................................................................................... 210
4.6.4 為視圖添加細節素材 ..................................................................................... 213
4.7 創建運動動畫 ........................................................................................................... 216
4.8 創建照片視圖 ........................................................................................................... 222
4.8.1 創建基本的格線視圖 ..................................................................................... 222
4.8.2 實現照片視圖的基本功能 ............................................................................. 225
4.8.3 實現照片視圖的滑動條功能 ......................................................................... 226
4.8.4 對格線視圖的改進 ......................................................................................... 228
4.9 創建複雜的格線視圖布局 ........................................................................................ 229
4.9.1 工具列的設定 ................................................................................................ 230
4.9.2 利用 Group 實現模式切換 ............................................................................ 231
4.9.3 實現格線視圖的基本功能 ............................................................................. 233
4.9.4 實現格線視圖的列數動態變換效果 ............................................................. 235
4.10 創建 iMessage 擴展功能 ........................................................................................ 238
4.11 將應用程式適配到 iPadOS 和 macOS 平台 .......................................................... 241
4.11.1 創建 App 的關於面板 .................................................................................. 241
4.11.2 自定義修飾器 ............................................................................................... 242
4.11.3 將項目遷移到 macOS 平台 ......................................................................... 244
第 5 章 愛上寫字 ....................................................................................................... 247
5.1 使用 Xcode 創建項目 ............................................................................................... 247
5.1.1 為項目添加程式圖示和相關圖片素材 ......................................................... 248
5.1.2 為項目添加啟動畫面 ..................................................................................... 249
5.1.3 整理項目檔案架構 ......................................................................................... 250
5.1.4 創建 FooterView ............................................................................................. 251
5.1.5 快速輸入自定義代碼塊 ................................................................................. 253
5.2 創建自定義導航欄 ................................................................................................... 254
5.2.1 創建導航欄視圖............................................................................................. 255
5.2.2 設計導航欄中的 Logo 視圖 .......................................................................... 256
5.2.3 為主場景視圖添加導航欄 ............................................................................. 257
5.3 創建圖像滑動視圖 ................................................................................................... 260
5.3.1 創建數據模型 ................................................................................................ 260
5.3.2 創建 JSON 解析方法 ..................................................................................... 261
5.3.3 創建用於滑動的圖像視圖 ............................................................................. 261
5.3.4 將圖像滑動視圖添加到主場景視圖 ............................................................. 263
5.4 為文具分類創建格線布局視圖 ................................................................................ 264
5.4.1 創建文具分類數據模型 ................................................................................. 264
5.4.2 創建文具分類子視圖 ..................................................................................... 265
5.4.3 創建文具分類格線視圖 ................................................................................. 267
5.4.4 為格線視圖創建 Header 和 Footer 視圖 ....................................................... 268
5.5 為商品創建格線布局視圖 ........................................................................................ 270
5.5.1 創建可復用的標題組件 ................................................................................. 270
5.5.2 創建商品的數據模型 ..................................................................................... 272
5.5.3 創建商品子視圖............................................................................................. 272
5.5.4 創建商品格線視圖 ......................................................................................... 274
5.6 創建品牌格線布局視圖............................................................................................ 275
5.6.1 創建品牌的數據模型 ..................................................................................... 275
5.6.2 創建品牌子視圖............................................................................................. 276
5.6.3 創建品牌格線視圖 ......................................................................................... 277
5.7 創建商品詳細頁面視圖............................................................................................ 278
5.7.1 創建產品詳細頁面視圖 ................................................................................. 278
5.7.2 創建詳細頁面導航欄 ..................................................................................... 279
5.7.3 創建 Header 視圖 ........................................................................................... 280
5.7.4 創建詳細頁面的上半部分視圖 ..................................................................... 281
5.7.5 創建詳細頁面的商品描述視圖 ..................................................................... 283
5.7.6 創建自定義形狀............................................................................................. 284
5.7.7 創建評星和筆尖規格視圖 ............................................................................. 287
5.7.8 創建數量和“設為最愛”視圖 ..................................................................... 290
5.7.9 創建添加到購物車視圖 ................................................................................. 291
5.8 完成最後的設定 ....................................................................................................... 293
5.8.1 創建 Shop 類 .................................................................................................. 293
5.8.2 在 ContentView 類中添加 Shop 實例 ........................................................... 294
5.8.3 實現返回按鈕的功能 ..................................................................................... 295
5.8.4 完善詳細頁面視圖功能 ................................................................................. 297
5.8.5 添加觸控反饋特性 ......................................................................................... 299
第 6 章 奇妙水果機 .................................................................................................... 302
6.1 使用 Xcode 創建項目 ............................................................................................... 302
6.1.1 為項目添加程式圖示和相關圖片素材 ......................................................... 303
6.1.2 為項目添加啟動畫面 ..................................................................................... 304
6.2 創建 Header 視圖 ...................................................................................................... 305
6.2.1 創建場景頁面代碼架構 ................................................................................. 305
6.2.2 單獨創建 Logo 視圖 ...................................................................................... 307
6.2.3 添加重置和相關信息按鈕 ............................................................................. 308
6.2.4 創建記分牌視圖............................................................................................. 310
6.3 創建遊戲主界面 ....................................................................................................... 314
6.3.1 設計水果機的槽位視圖 ................................................................................. 314
6.3.2 搭建遊戲主界面視圖 ..................................................................................... 316
6.4 添加 Footer 視圖 ....................................................................................................... 318
6.4.1 創建 Footer 界面 ............................................................................................ 318
6.4.2 重構 Footer 視圖的代碼 ................................................................................ 320
6.5 創建遊戲信息視圖頁面............................................................................................ 323
6.5.1 創建信息視圖 ................................................................................................ 323
6.5.2 實現關閉信息頁面功能 ................................................................................. 327
6.6 編寫遊戲邏輯代碼 ................................................................................................... 329
6.6.1 實現隨機生成槽位水果的邏輯 ..................................................................... 329
6.6.2 實現判斷輸贏的邏輯 ..................................................................................... 331
6.6.3 實現玩家選擇遊戲分值的功能 ..................................................................... 333
6.6.4 創建遊戲結束時的自定義視窗 ..................................................................... 335
6.7 利用 User Defaults 存儲和獲取數據 ........................................................................ 340
6.8 為遊戲添加動畫效果 ............................................................................................... 342
6.9 為遊戲添加聲效和背景音樂 .................................................................................... 345
第 7 章 TODO 應用程式 ............................................................................................ 350
7.1 使用 Xcode 創建項目 ............................................................................................... 350
7.1.1 創建 Todo 項目 .............................................................................................. 350
7.1.2 創建添加待辦事項視圖頁面 ......................................................................... 353
7.2 了解 Core Data 特性 ................................................................................................. 357
7.2.1 Core Data 簡介 ............................................................................................... 357
7.2.2 為項目創建實例............................................................................................. 358
7.2.3 Core Date 的工作方式 ................................................................................... 359
7.2.4 為頁面添加 managedObjectContext .............................................................. 361
7.2.5 改善 AddTodoView 的用戶體驗 ................................................................... 364
7.2.6 顯示待辦事項數據信息 ................................................................................. 365
7.2.7 刪除和更新數據記錄 ..................................................................................... 367
7.3 顯示隨機視圖 ........................................................................................................... 369
7.3.1 創建 EmptyListView 頁面 ............................................................................. 369
7.3.2 為視圖添加微動畫 ......................................................................................... 373
7.3.3 顯示隨機內容 ................................................................................................ 374
7.4 改進表單的外觀 ....................................................................................................... 375
7.4.1 改進 AddTodoView 的外觀 ........................................................................... 375
7.4.2 改進 ContentView 的外觀 .............................................................................. 377
7.5 設定視圖頁面 ........................................................................................................... 381
7.5.1 創建設定視圖頁面 ......................................................................................... 381
7.5.2 創建表單靜態行視圖 ..................................................................................... 382
7.5.3 創建可連結的靜態行視圖 ............................................................................. 384
7.6 創建可切換應用程式圖示功能 ................................................................................ 388
7.6.1 添加並設定可替換圖示 ................................................................................. 388
7.6.2 從配置檔案中獲取可替換圖示信息 ............................................................. 391
7.6.3 生成應用程式圖示選擇器 ............................................................................. 393
7.7 為應用程式創建顏色主題 ........................................................................................ 398
7.7.1 創建顏色主題相關檔案和資料夾 ................................................................. 398
7.7.2 在 SettingsView 頁面中添加切換顏色主題功能 .......................................... 399
7.7.3 更新用戶界面 ................................................................................................ 402
7.7.4 完成設計上的最後改進 ................................................................................. 404
第 8 章 InYourHeart 應用程式 .................................................................................... 406
8.1 使用 Xcode 創建項目 ............................................................................................... 406
8.2 卡片視圖 ................................................................................................................... 409
8.2.1 創建卡片視圖的數據模型 ............................................................................. 409
8.2.2 創建卡片視圖 ................................................................................................ 410
8.3 創建 Header 和 Footer 視圖 ...................................................................................... 413
8.3.1 創建 HeaderView 頁面 ................................................................................... 413
8.3.2 創建 Footer 視圖頁面 .................................................................................... 415
8.4 創建可復用組件 ....................................................................................................... 416
8.5 創建指南視圖頁面 ................................................................................................... 419
8.6 利用 Binding 實現視圖之間的數據交換 ................................................................. 421
8.6.1 Binding 封裝屬性 ........................................................................................... 422
8.6.2 使用環境對象關閉視圖 ................................................................................. 424
8.6.3 生成信息導覽頁面視圖 ................................................................................. 426
8.6.4 實現 InfoView 的呈現和關閉 ........................................................................ 432
8.7 照片卡牌 ................................................................................................................... 434
8.7.1 創建照片卡牌 ................................................................................................ 434
8.7.2 對照片卡牌的改進 ......................................................................................... 436
8.7.3 實現左右滑動手勢 ......................................................................................... 437
8.7.4 顯示喜愛或不喜愛的圖示 ............................................................................. 442
8.8 移除和添加照片卡牌 ............................................................................. 444
作者簡介
劉銘,資深iOS開發工程師,從事軟體開發工作近15年,精通Objective-C和Swift技術,以及蘋果開發相關的各項技術,有豐富的實戰經驗。早年從事PHP和Flash/Flex套用開發,有超過7年的Web套用開發經驗。活躍於CocoaChina和CSDN等專業社區,發表了大量技術文章,有一定的影響力。寫作經驗豐富,前後共出版iOS應用程式開發相關書籍5部。