-
-
Notifications
You must be signed in to change notification settings - Fork 33
/
idoc.chapters.yml
390 lines (325 loc) · 22.3 KB
/
idoc.chapters.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
- quick-start/: 介绍
- quick-start/dont-panic.md: 不要惊慌!
- quick-start/what-is-swiftui.md: 什么是 SwiftUI?
- quick-start/swiftui-vs-interface-builder-and-storyboards.md: SwiftUI 与 Interface Builder 和 storyboards
- quick-start/frequently-asked-questions-about-swiftui.md: 有关 SwiftUI 的常见问题
- quick-start/answering-the-big-question-should-you-learn-swiftui-uikit-or-both.md: 回答这个大问题:你应该学习 SwiftUI,UIKit,还是两者都学?
- quick-start/how-to-follow-this-quick-start-guide.md: 如何遵循这个快速入门指南?
- quick-start/migrating-from-uikit-to-swiftui.md: 从 UIKit 迁移到 SwiftUI
- quick-start/whats-in-the-basic-template.md: 基本模板是什么?
- quick-start/dedication.md: 贡献
# ## 建立一个完整的项目
# 通过实际的应用程序项目学习 SwiftUI
- introduction/: 建立一个完整的项目
- introduction/demo1/README.md: 创建一个 `SwiftUI` 项目
- introduction/demo2/README.md: 使用列表构建菜单
# ## 使用静态文本
# 整齐地布局文本
- working-with-static-text/: 使用静态文本
- working-with-static-text/demo1/README.md: 如何使用 `Text` 视图创建静态标签?
- working-with-static-text/demo2/README.md: 如何使用字体,颜色,行距等为文本视图设置样式?
- working-with-static-text/demo3/README.md: 如何使用 `multilineTextAlignment()` 调整文本对齐方式?
- working-with-static-text/demo4/README.md: 如何在文本视图中设置文本格式?
- working-with-static-text/demo5/README.md: 如何在文字中的字母之间增加空格?
- working-with-static-text/demo6/README.md: 如何在文字检视中格式化日期?
- working-with-static-text/demo7/README.md: 如何使用 `textCase()` 使 `TextField` 大写或小写?
- working-with-static-text/demo8/README.md: 如何使用 `Label` 并排显示文本和图标?
- working-with-static-text/demo9/README.md: 如何使用 `redacted()` 将内容标记为占位符?
- working-with-static-text/demo10/README.md: 如何使用 `privacySensitive()` 将内容标记为私有?
- working-with-static-text/demo11/README.md: 如何在文本中呈现 `Markdown` 内容?
- working-with-static-text/demo12/README.md: 如何让用户选择文本?
# ## 图像,形状和媒体
# 绘制图标,圆形,渐变等
- images-shapes-media/: 图像,形状和媒体
- images-shapes-media/demo1/README.md: 如何使用图像视图绘制图像?
- images-shapes-media/demo2/README.md: 如何调整图像适合其空间的展示方式?
- images-shapes-media/demo3/README.md: 如何平铺图像?
- images-shapes-media/demo4/README.md: 如何使用SF符号渲染图像?
- images-shapes-media/demo5/README.md: 如何渲染渐变?
- images-shapes-media/demo6/README.md: 如何使用图像和其他视图作为背景?
- images-shapes-media/demo7/README.md: 如何显示实体形状?
- images-shapes-media/demo8/README.md: 如何同时填充和描边形状?
- images-shapes-media/demo9/README.md: 如何使用 `trim()` 绘制实体形状的一部分?
- images-shapes-media/demo10/README.md: 什么时候应该使用 `ContainerRelativeShape`?
- images-shapes-media/demo11/README.md: 如何使用 `VideoPlayer` 播放电影?
- images-shapes-media/demo12/README.md: 如何使用 `SpriteView` 集成 `SpriteKit`?
- images-shapes-media/demo13/README.md: 如何从 URL 加载远程图像?
- images-shapes-media/demo14/README.md: 如何使用 SF Symbols 获得自定义颜色和透明度?
# ## 视图布局
# 布局大小,优先级和间距
- view-layout/: 视图布局
- view-layout/demo1/README.md: 如何给视图定制 `frame`?
- view-layout/demo2/README.md: 如何使用 `padding` 来控制各个视图之间的间距?
- view-layout/demo3/README.md: 如何使用 `GeometryReader` 提供相对大小?
- view-layout/demo4/README.md: 如何将内容放置在安全区域之外?
- view-layout/demo5/README.md: 如何返回不同的视图类型?
- view-layout/demo6/README.md: 如何使用 `ForEach` 循环创建视图?
- view-layout/demo7/README.md: 如何使用 `layoutPriority()` 控制布局优先级?
- view-layout/demo8/README.md: 如何使两个视图具有相同的宽度或高度?
- view-layout/demo9/README.md: 如何使用 `foregroundStyle()` 提供视觉结构?
# ## 堆栈,网格,滚动视图
# 以结构化方式定位视图
- stacks-grids-scrollviews/: 堆栈,网格,滚动视图
- stacks-grids-scrollviews/demo1/README.md: 如何使用 `VStack` 和 `HStack` 创建堆栈?
- stacks-grids-scrollviews/demo2/README.md: 如何使用对齐 `alignment` 和间距 `spacing` 自定义堆栈布局?
- stacks-grids-scrollviews/demo3/README.md: 如何使用 `Spacer` 将视图强制移到堆栈中的一侧?
- stacks-grids-scrollviews/demo4/README.md: 如何制作固定尺寸的 `Spacer`?
- stacks-grids-scrollviews/demo5/README.md: 如何使用 `ZStack` 在彼此之上叠加视图?
- stacks-grids-scrollviews/demo6/README.md: 如何使用 `zIndex` 更改视图分层的顺序?
- stacks-grids-scrollviews/demo7/README.md: 如何使用尺寸类创建不同的布局?
- stacks-grids-scrollviews/demo8/README.md: 如何根据大小类在 `HStack` 和 `VStack` 之间自动切换?
- stacks-grids-scrollviews/demo9/README.md: 如何使用 `ScrollView` 添加水平和垂直滚动?
- stacks-grids-scrollviews/demo10/README.md: 如何使用 `ScrollViewReader` 使滚动视图移动到某个位置?
- stacks-grids-scrollviews/demo11/README.md: 如何使用 `ScrollView` 和 `GeometryReader` 创建3D效果(如Cover Flow)?
- stacks-grids-scrollviews/demo12/README.md: 如何使用 `LazyVGrid` 和 `LazyHGrid` 在网格中放置视图?
- stacks-grids-scrollviews/demo13/README.md: 如何使用 `LazyVStack` 和 `LazyHStack` 延迟加载视图?
- stacks-grids-scrollviews/demo14/README.md: 如何使用 `HSplitViews` 创建左中右三栏布局?
- stacks-grids-scrollviews/demo15/README.md: 如何添加视觉效果模糊?
# ## 用户界面控件
# 响应交互并控制程序状态
- user-interface-controls/: 用户界面控件
- user-interface-controls/demo1/README.md: 使用状态
- user-interface-controls/demo2/README.md: 如何创建可点击的按钮?
- user-interface-controls/demo3/README.md: 如何禁用 `Button` 和 `NavigationLink` 中的图像的覆盖颜色?
- user-interface-controls/demo4/README.md: 如何从 `TextField` 读取文本?
- user-interface-controls/demo5/README.md: 如何在 `TextField` 上添加边框?
- user-interface-controls/demo6/README.md: 如何将占位符添加到 `TextField`?
- user-interface-controls/demo7/README.md: 如何在 `TextField` 中禁用自动更正?
- user-interface-controls/demo8/README.md: 如何关闭 `TextField` 的键盘?
- user-interface-controls/demo9/README.md: 如何格式化数字的 `TextField`?
- user-interface-controls/demo10/README.md: 如何使用 `SecureField` 创建安全的文本字段?
- user-interface-controls/demo11/README.md: 如何创建拨动开关?
- user-interface-controls/demo12/README.md: 如何创建滑块 `Slider` 并从中读取值?
- user-interface-controls/demo13/README.md: 如何创建选择器 `Picker` 并从中读取值?
- user-interface-controls/demo14/README.md: 如何创建日期选择器 `DatePicker` 并从中读取值?
- user-interface-controls/demo15/README.md: 如何创建分段控件并从中读取值?
- user-interface-controls/demo16/README.md: 如何创建步进器 `Stepper` 并从中读取值?
- user-interface-controls/demo17/README.md: 如何使用 `labelsHidden()` 隐藏 `Picker`,`Stepper`,`Toggle` 等标签?
- user-interface-controls/demo18/README.md: 如何使用文本编辑器创建多行可编辑文本 `TextEditor`?
- user-interface-controls/demo19/README.md: 如何让用户使用 `ColorPicker` 选择颜色?
- user-interface-controls/demo20/README.md: 如何使用 `ProgressView` 显示任务的进度?
- user-interface-controls/demo21/README.md: 如何使用 `ProgressView` 显示不确定的进度?
- user-interface-controls/demo22/README.md: 如何显示地图 `Map` 视图?
- user-interface-controls/demo23/README.md: 如何在地图 `Map` 视图中显示注释?
- user-interface-controls/demo24/README.md: 如何在 `Safari` 中打开 Web 链接?
- user-interface-controls/demo25/README.md: 如何设置可编辑文本 `TextEditor` 背景颜色?
- user-interface-controls/demo26/README.md: 如何自定义 `TextField`、`SecureField` 和 `TextEditor` 的提交按钮?
- user-interface-controls/demo27/README.md: 当用户提交 TextField 时如何执行事件?
- user-interface-controls/demo28/README.md: 如何获得突出的边框按钮?
# ## 响应事件
# 快捷方式,旋转方式和外观
- responding-to-events/: 响应事件
- responding-to-events/demo1/README.md: 如何使用 `scenePhase` 检测您的应用何时移至背景或前景?
- responding-to-events/demo2/README.md: 如何响应查看生命周期事件:`onAppear()` 和 `onDisappear()` ?
- responding-to-events/demo3/README.md: 如何使用 `keyboardShortcut()` 添加键盘快捷键?
- responding-to-events/demo4/README.md: 如何控制应用启动时显示的视图?
- responding-to-events/demo5/README.md: 应用启动时如何运行代码?
- responding-to-events/demo6/README.md: 如何将 `AppDelegate` 添加到 SwiftUI 应用?
- responding-to-events/demo7/README.md: 如何检测设备旋转?
- responding-to-events/demo8/README.md: 如何在键盘上添加工具栏?
- responding-to-events/demo9/README.md: 显示视图时如何运行异步任务?
# ## 点击和手势
# 滑动,轻击,摇动和其他输入
- taps-and-gestures/: 点击和手势
- taps-and-gestures/demo1/README.md: 如何在视图中添加手势识别器?
- taps-and-gestures/demo2/README.md: 如何阅读点击和双击手势?
- taps-and-gestures/demo3/README.md: 如何使用 `highPriorityGesture()` 强制一个手势先识别另一个手势?
- taps-and-gestures/demo4/README.md: 如何使用 `simultaneousGesture()` 同时识别两个手势?
- taps-and-gestures/demo5/README.md: 如何使用 `sequenced(before:)` 创建手势链?
- taps-and-gestures/demo6/README.md: 如何检测到用户将鼠标悬停在视图上?
- taps-and-gestures/demo7/README.md: 如何检测摇动手势?
- taps-and-gestures/demo8/README.md: 如何使用 `contentShape()` 控制视图的可点击区域?
- taps-and-gestures/demo9/README.md: 如何使用 `allowsHitTesting()` 禁用视图的点击?
# ## 状态
# 响应交互并控制程序状态
- advanced-state/: 状态
- advanced-state/demo1/README.md: "`@ObservedObject`,`@State` 和 `@EnvironmentObject` 有什么区别?"
- advanced-state/demo2/README.md: 如何使用 `@StateObject` 创建和监视外部对象?
- advanced-state/demo3/README.md: 如何使用 `@ObservedObject` 管理外部对象的状态?
- advanced-state/demo4/README.md: 如何使用 `@EnvironmentObject` 在视图之间共享数据?
- advanced-state/demo5/README.md: 如何使用 `objectWillChange` 手动发送状态更新?
- advanced-state/demo6/README.md: 如何创建常量绑定?
- advanced-state/demo7/README.md: 如何创建自定义绑定?
- advanced-state/demo8/README.md: 如何在 `SwiftUI` 中使用计时器?
- advanced-state/demo9/README.md: 当使用 `onChange()` 改变状态时如何运行一些代码?
# ## 列表
# 创建数据滚动表
- lists/: 列表
- lists/demo1/README.md: 使用列表 `List`
- lists/demo2/README.md: 如何创建静态物品列表?
- lists/demo3/README.md: 如何创建动态项目列表?
- lists/demo4/README.md: 如何让用户从列表中删除行?
- lists/demo5/README.md: 如何让用户在列表中移动行?
- lists/demo6/README.md: 如何将 `Section` 添加到列表?
- lists/demo7/README.md: 如何使用 `EditButton` 启用对列表的编辑?
- lists/demo8/README.md: 如何使用 `listRowBackground()` 设置列表行的背景色?
- lists/demo9/README.md: 如何创建分组和插入分组列表?
- lists/demo10/README.md: 如何创建扩展列表?
- lists/demo11/README.md: 如何滚动到列表中的特定行?
- lists/demo12/README.md: 如何允许列表中的行选择?
- lists/demo13/README.md: 如何使用隐式堆栈?
# ## 表单
# 快速有效地获得用户输入
- forms/: 表单
- forms/demo1/README.md: 使用表单 `Form`
- forms/demo2/README.md: 基本表单设计
- forms/demo3/README.md: 将表单分为几个部分
- forms/demo4/README.md: 表单选择器 `Pickers`
- forms/demo5/README.md: 启用和禁用表单中的元素
- forms/demo6/README.md: 显示和隐藏表单行
# ## 容器
# 将视图放置在导航控制器等中
- containers/: 容器
- containers/demo1/README.md: 使用容器
- containers/demo2/README.md: 如何在导航视图中嵌入视图?
- containers/demo3/README.md: 如何将栏项目添加到导航视图?
- containers/demo4/README.md: 如何使用 `TabView` 将视图嵌入选项卡栏中?
- containers/demo5/README.md: 如何使用 `tabViewStyle()` 创建内容的滚动页面?
- containers/demo6/README.md: 如何将视图组合 `Group` 在一起?
- containers/demo7/README.md: 如何隐藏和显示状态栏?
- containers/demo8/README.md: 如何使用 `DisclosureGroup` 隐藏和显示内容?
- containers/demo9/README.md: 如何创建工具栏并向其中添加按钮?
- containers/demo10/README.md: 如何为 `iPadOS` 添加侧边栏?
- containers/demo11/README.md: 如何隐藏和显示 `NavigationView` 侧边栏?
# ## 对话框和菜单
# 发生某些情况时显示模式通知
- alerts-and-menus/: 对话框和菜单
- alerts-and-menus/demo1/README.md: 使用简介
- alerts-and-menus/demo2/README.md: 如何显示 `alert`?
- alerts-and-menus/demo3/README.md: 如何为 `alert` 按钮添加动作?
- alerts-and-menus/demo4/README.md: 如何在单个视图中显示多个 `alert`?
- alerts-and-menus/demo5/README.md: 如何显示动作面板?
- alerts-and-menus/demo6/README.md: 如何显示上下文菜单?
- alerts-and-menus/demo7/README.md: 如何使用 `appStoreOverlay()` 推荐另一个应用程序?
- alerts-and-menus/demo8/README.md: 按下按钮时如何显示菜单?
- alerts-and-menus/demo9/README.md: 如何让用户从菜单中选择选项?
- alerts-and-menus/demo10/README.md: 如何更改 macOS 应用中主菜单?
- alerts-and-menus/demo11/README.md: 如何添加偏好设置界面?
# ## 切换界面
# 将您的用户从一个视图移动到另一个视图
- presenting-views/: 切换界面
- presenting-views/demo1/README.md: 如何将新视图推送到 `NavigationView` 上?
- presenting-views/demo2/README.md: 点击列表行时如何推送新视图?
- presenting-views/demo3/README.md: 如何在 `SwiftUI` 中使用程序化导航?
- presenting-views/demo4/README.md: 如何使用 `sheets` 呈现新视图?
- presenting-views/demo5/README.md: 如何使视图自行关闭?
- presenting-views/demo6/README.md: 如何显示弹出视图?
# ## 转换视图
# 剪辑,大小,比例,旋转等
- transforming-views/: 转换视图
- transforming-views/demo1/README.md: 如何使用其偏移量调整视图的位置 `offset`?
- transforming-views/demo2/README.md: 如何为视图周围的填充着色?
- transforming-views/demo3/README.md: 如何堆叠修改器以创建更高级的效果?
- transforming-views/demo4/README.md: 如何在视图周围绘制边框?
- transforming-views/demo5/README.md: 如何在视图内绘制边框?
- transforming-views/demo6/README.md: 如何创建行军蚂蚁边框动画效果?
- transforming-views/demo7/README.md: 如何在视图周围绘制阴影?
- transforming-views/demo8/README.md: 如何裁剪视图,以便仅部分可见?
- transforming-views/demo9/README.md: 如何旋转视图?
- transforming-views/demo10/README.md: 如何旋转 3D 视图?
- transforming-views/demo11/README.md: 如何放大或缩小视图?
- transforming-views/demo12/README.md: 如何圆角化一个视图?
- transforming-views/demo13/README.md: 如何调整视图的不透明度?
- transforming-views/demo14/README.md: 如何调整视图的强调色?
- transforming-views/demo15/README.md: 如何用一个视图掩盖另一个视图?
- transforming-views/demo16/README.md: 如何模糊视图?
- transforming-views/demo17/README.md: 如何将视图融合在一起?
- transforming-views/demo18/README.md: 如何通过着色,去饱和等来调整视图?
- transforming-views/demo19/README.md: 使用 `ButtonStyle` 自定义按钮
- transforming-views/demo20/README.md: 使用 `ProgressViewStyle` 自定义 `ProgressView`
- transforming-views/demo21/README.md: 使用 `ToggleStyle` 自定义 `Toggle`
- transforming-views/demo22/README.md: 如何更改 `List` `TextEditor` 等的背景色
# ## 绘画
# 使用自定义形状控制渲染
- drawing/: 绘画
- drawing/demo1/README.md: SwiftUI 的内置形状
- drawing/demo2/README.md: 如何绘制自定义路径?
- drawing/demo3/README.md: 如何绘制多边形和星星?
- drawing/demo4/README.md: 如何画一个棋盘?
# ## 动画
# 通过运动使您的界面栩栩如生
- animation/: 动画
- animation/demo1/README.md: 如何创建基本动画?
- animation/demo2/README.md: 如何制作弹簧动画?
- animation/demo3/README.md: 如何为绑定值的变化制作动画?
- animation/demo4/README.md: 如何创建显式动画?
- animation/demo5/README.md: 如何延迟动画?
- animation/demo6/README.md: 视图出现后如何立即启动动画?
- animation/demo7/README.md: 如何在一个视图中应用多个动画?
- animation/demo8/README.md: 如何使用 matchedGeometryEffect() 将动画从一个视图同步到另一个视图?
- animation/demo9/README.md: 如何通过过渡添加和删除视图?
- animation/demo10/README.md: 如何创建不对称过渡?
- animation/demo11/README.md: 如何创建自定义过渡?
- animation/demo12/README.md: 如何设置文字大小的动画?
- animation/demo13/README.md: 如何用事务覆盖动画?
# ## 排版视图
# 使您的UI结构更易于理解
- composing-views/: 排版视图
- composing-views/demo1/README.md: 如何创建和组合自定义视图?
- composing-views/demo2/README.md: 如何将文本视图结合在一起?
- composing-views/demo3/README.md: 如何将视图存储为属性?
- composing-views/demo4/README.md: 如何创建自定义修改程序?
- composing-views/demo5/README.md: 如何为 `SwiftUI` 包装自定义 `UIView`?
- composing-views/demo6/README.md: 如何为 `UIViewRepresentable` 结构创建修饰符?
- composing-views/demo7/README.md: 如何将图像插入文本?
# ## 跨平台 SwiftUI
# 学习让您的应用在任何地方都看起来很棒
- cross-platform/: 跨平台 SwiftUI
- cross-platform/demo1/README.md: 学习一次,随处应用
- cross-platform/demo2/README.md: 如何在 `macOS` 上获取半透明列表?
- cross-platform/demo3/README.md: 如何在 `watchOS` 上制作轮播列表?
- cross-platform/demo4/README.md: 如何使用 `digitalCrownRotation()` 在 `watchOS` 上读取 `Digital Crown`?
# ## 数据
# 通过 `Core Data` 集成和更多功能处理数据
- data/: 数据
- data/demo1/README.md: 在 `SwiftUI` 中使用 `Core Data` 的简介
- data/demo2/README.md: 如何配置核心数据以与 `SwiftUI` 一起使用?
- data/demo3/README.md: 如何从 `SwiftUI` 视图访问 `Core Data` 管理的对象上下文?
- data/demo4/README.md: 如何使用 `@FetchRequest` 创建核心数据获取请求?
- data/demo5/README.md: 如何使用 `predicate` 过滤核心数据获取请求?
- data/demo6/README.md: 如何从 `SwiftUI` 视图添加 `Core Data` 对象?
- data/demo7/README.md: 如何从 `SwiftUI` 视图中删除 `Core Data` 对象?
- data/demo8/README.md: 如何限制获取请求中的项目数?
- data/demo9/README.md: 如何使用 `FileDocument` 和 `DocumentGroup` 创建基于文档的应用程序?
- data/demo10/README.md: 如何使用 `fileExporter()` 导出文件?
- data/demo11/README.md: 如何在 `SwiftUI` 中继续 `NSUserActivity`?
- data/demo12/README.md: 如何使用 `LocationButton` 读取用户的位置?
# ## 辅助功能
# 如何使每个人都能使用您的应用
- accessibility/: 辅助功能
- accessibility/demo1/README.md: SwiftUI 的可访问性简介
- accessibility/demo2/README.md: 如何使用带有自定义字体的动态类型?
- accessibility/demo3/README.md: 如何检测“减少运动”辅助功能设置?
- accessibility/demo4/README.md: 如何检测暗模式?
- accessibility/demo5/README.md: 如何使用装饰性图像减少屏幕阅读器的混乱?
- accessibility/demo6/README.md: 如何在请求时减少动画?
# ## 工具
# 使用Xcode的帮助构建更好的应用程序
- tooling/: 工具
- tooling/demo1/README.md: 如何以不同的动态类型大小预览布局?
- tooling/demo2/README.md: 如何在亮(light)和黑暗(dark)模式下预览布局?
- tooling/demo3/README.md: 如何在不同的设备中预览布局?
- tooling/demo4/README.md: 如何在导航视图中预览布局?
- tooling/demo5/README.md: 如何使用 `Instruments` 来配置您的 SwiftUI 代码并识 `identify` 布局?
- tooling/demo6/README.md: 如何在 `SwiftUI` 中使用 `Touch ID` 和 `Face ID`?
- tooling/demo7/README.md: 如何在 Xcode 中添加创建 `Swift` 包依赖?
- tooling/demo8/README.md: 如何以纵向或横向预览布局?
- tooling/demo9/README.md: 如何查找导致 SwiftUI 视图更新的数据更改?
# ## 附录A
# 如何使用每个 SwiftUI 属性包装器
- appendix-a/: 附录A
- appendix-a/demo1/README.md: 了解 Swift 和 SwiftUI 中的属性包装器
- appendix-a/demo2/README.md: 所有 SwiftUI 属性包装器都进行了解释和比较
- appendix-a/demo3/README.md: 什么是 `@State` 属性包装器?
- appendix-a/demo4/README.md: 什么是 `@StateObject` 属性包装器?
- appendix-a/demo5/README.md: 什么是 `@Published` 属性包装器?
- appendix-a/demo6/README.md: 什么是 `@ObservedObject` 属性包装器?
- appendix-a/demo7/README.md: 什么是 `@EnvironmentObject` 属性包装器?
- appendix-a/demo8/README.md: 什么是 `@Environment` 属性包装器?
- appendix-a/demo9/README.md: 什么是 `@Binding` 属性包装器?
- appendix-a/demo10/README.md: 什么是 `@GestureState` 属性包装器?
- appendix-a/demo11/README.md: 什么是 `@FetchRequest` 属性包装器?
- appendix-a/demo12/README.md: 什么是 `@AppStorage` 属性包装器?
- appendix-a/demo13/README.md: 什么是 `@SceneStorage` 属性包装器?
- appendix-a/demo14/README.md: 什么是 `@ScaledMetric` 属性包装器?
- appendix-a/demo15/README.md: 什么是 `@UIApplicationDelegateAdaptor` 属性包装器?