SwiftUI

文档 #

SwiftUI | Apple Developer Documentation

SwiftUI 的大分类结构概述 #

以下是 SwiftUI 的大分类和对应用途的整体结构表:

分类主要功能组成模块
视图(View)构建 UI 的基本单元,包括文本、图片、按钮和形状等。Text, Image, Button, Shape
布局系统控制视图的排列布局以及响应式处理。HStack, VStack, ZStack, Spacer
数据驱动编程使用数据绑定动态更新视图,响应数据状态变化。State, Binding, ObservedObject
数据展示展示大数据量内容,支持懒加载与滚动显示。List, ScrollView, Lazy* 系列
导航与容器管理界面层次和页面跳转。NavigationView, TabView, Group
表单与输入控件数据输入及其交互组件。TextField, Toggle, Picker
动画与事务提供隐式和显式动画的支持,以及视图的过渡和协调动画。.animation, .transition, matchedEffect
手势与交互识别和处理用户的手势、滑动、拖拽等交互行为。.onTapGesture, .gesture, .swipeActions
绘图与图形绘制路径、形状和渐变效果。Path, Shape, Canvas, Gradients
状态和生命周期管理管理视图和应用的声明周期状态,监听生命周期事件。App, Scene, .onAppear, .onDisappear
通知与事件处理监听事件和系统通知,通过 Combine 框架实现响应式事件处理。.onReceive, NotificationCenter
可访问性支持提升应用的无障碍支持,适配 VoiceOver 等工具。.accessibilityLabel, .accessibilityHint
资源管理持久化本地化数据以及资源文件管理。@AppStorage, Image Assets, .ignoresSafeArea
跨平台支持支持 iOS、macOS、watchOS 和 tvOS 跨平台开发。PlatformModifiers, Universal Code

接下来,我们将用细分表格列出各分类内的主要细分。


1. 视图 (View) #

子模块功能
Text显示静态文本内容。
Image显示图片资源,用于界面装饰或标志。
Button提供按钮交互,触发用户行为逻辑。
Link点击后打开指定的 URL(适合深度链接及外部浏览)。
Shape绘制几何形状,如 Circle, Rectangle 等。

2. 布局系统 #

子模块功能
HStack将子视图水平排列。
VStack将子视图垂直排列。
ZStack将子视图按照层叠顺序排列,类似 Photoshop 图层。
Spacer在某些布局中创建可伸缩的空白,用于动态分配空间。
GeometryReader提供对父视图尺寸和位置的访问,支持响应式布局。

3. 数据驱动编程 #

子模块作用
@State用于存储和更新视图的局部状态。
@Binding父子视图之间共享状态,用于双向数据绑定。
@ObservedObject监听对象的变化(配合 @Published 来发布值变化)。
@EnvironmentObject用于跨视图共享数据,适合全局模型数据的共享。
@AppStorage存储简单键值对数据到 UserDefaults,用于持久化本地数据。

4. 数据展示 #

子模块功能
List显示动态或静态的垂直滚动列表内容,可结合 Navigation 使用。
ScrollView支持水平或垂直滚动的内容显示,包括组合内容。
LazyVStack垂直懒加载高效地渲染长列表视图。
LazyHStack水平懒加载布局,适合大量数据场景。
ForEach结合集合数据动态渲染视图内容。

5. 导航与容器 #

子模块作用
NavigationView包裹内容视图并支持导航功能。
NavigationLink指定点击后跳转的目标页面。
TabView创建多页面选项卡式的导航,适合大模块切换使用。
Group视图分组,不影响表现但为逻辑组织提供便利。
Divider添加一条分割线,可在不同布局元素之间使用。

6. 表单与输入控件 #

子模块功能
TextField文本输入控件,用于用户输入简单文本内容。
SecureField密码输入控件,隐藏字符显示。
Toggle开关控件(on/off 切换)。
Picker选择器控件,可用来选择单选或多选的列表值。
DatePicker日期或时间选择控件,支持多种格式。
Slider滑动条控件,用于数值选择或范围控制。

7. 动画与事务 #

子模块作用
.animation为视图变换添加隐式动画。
.withAnimation创建显式动画效果,结合异步操作使用。
.transition定义视图显示和消失时的过渡动画。
.matchedGeometryEffect跨视图共享动画效果,用于复杂视图间的流畅动画。

8. 手势与交互 #

子模块功能
.onTapGesture轻触时触发事件。
.onLongPressGesture长按时触发事件。
.gesture接收其他复杂手势的事件(如拖动或缩放)。
.swipeActions (iOS 15+)添加滑动操作(比如左滑删除)。

9. 绘图与图形 #

子模块作用
Path描述自定义路径,用于绘制复杂形状。
Shape内置简单形状,例如矩形(Rectangle)、圆形(Circle)。
Canvas (iOS 16+)类似于画布的绘制环境,可以自由绘制动态内容。
LinearGradient, RadialGradient定义线性或放射状渐变效果。

10. 状态与生命周期管理 #

子模块作用
App定义 SwiftUI 应用的入口类(替代传统的 UIApplicationDelegate)。
SceneSwiftUI 的应用生命周期场景层级,支持多窗口等特性(如 WindowGroup)。
.onAppear在视图出现在屏幕时调用。
.onDisappear在视图从屏幕移除时调用。

11. SwiftUI 的设计理念总结 #

SwiftUI 的体系结构是模块化的,关注点独立,从视图构建到动画和多平台支持,解决了大量传统 UI 开发的繁琐问题。整个结构以“声明式编程”和“响应式绑定”为核心,通过对视图(View)、布局系统、数据驱动编程等功能的划分,使开发者能快速掌握并高效使用。