SwiftUI

借助 SwiftUI,你可以利用 Swift 的强大功能打造适合各个 Apple 平台的精美 App,而无需编写大量代码。你只需使用一套工具和 API,就能在任何 Apple 设备上为所有人带来更加出色的体验。

MacBook Pro、iPad 和 iPhone,每台都显示 SwiftUI 界面。

SwiftUI 的新功能

高级动画控制

使用扩展的动画支持构建复杂的动画。使用阶段创建动画序列,或使用关键帧创建多个动画轨道。SwiftUI 会自动将用户手势的速度转换为动画,让你的 App 显得更为流畅自然。

简化的数据流

使用 @Observable 可使 SwiftUI 自动检测你的视图访问哪些字段,并通过仅在必要时进行重绘实现加速渲染。

构建空间 App

当你重新编译适用于 visionOS 的 SwiftUI App 时,可以为窗口添加深度和 3D 物体或者呈现体积。使用 RealityView 可将 RealityKit 内容与你的视图和控件一同引入。你还可以结合使用 SwiftUI 和 RealityKit 来打造全空间沉浸式体验。

交互式小组件

使用 ButtonToggle 创建交互式小组件。将小组件放置到新的位置,例如 iPhone 上的待机画面、iPad 上的锁定屏幕,以及 Mac 上的桌面。SwiftUI 可以在不同的平台上基于环境来调整小组件的颜色和间距。

对 SwiftData 的支持

借助 SwiftUI,只需一行代码即可轻松开始使用 SwiftData。SwiftUI 会自动观察使用 @Model 进行建模的数据。@Query 可高效地为视图获取经过过滤和排序的数据,并进行刷新以响应做出的更改。

扩展的 watchOS API

与 watchOS App 共享更多的 SwiftUI 代码。使用表冠来滚动浏览垂直 TabView,使用自适应背景容器来匹配颜色,通过新的 ToolbarItem 放置位置来充分利用全面屏设计,并利用 NavigationSplitView 来构建详细列表视图。

新的 MapKit API

全面控制 MapKit 摄像头、注解,地图模式等。你甚至可以将 MapKit 视图放置在小组件内。

新的图表类型和交互操作

使用饼图和圆环图显示信息。借助选择段和滚动功能,用户可以浏览图表并更好地理解数据。

扩展 API 覆盖范围

SwiftUI 继续扩展其 API,包括关联程序化滚动和分页、动画式滚动转场、新的检查器组件、细粒度焦点控制、新的键盘输入支持等。

声明式语法

SwiftUI 采用声明式语法,你只需声明用户界面应具备的功能便可。例如,你可以写明你需要一个由文本栏组成的项目列表,然后描述各个栏位的对齐方式、字体和颜色。你的代码比以往更加简单直观和易于理解,可以节省你的时间和维护工作。

import SwiftUI struct AlbumDetail: View { var album: Album var body: some View { List(album.songs) { song in HStack { Image(album.cover) VStack(alignment: .leading) { Text(song.title) Text(song.artist.name) .foregroundStyle(.secondary) } } } } }

这种声明式风格甚至适用于动画等复杂的概念。只需几行代码,就能轻松地向几乎任何控件添加动画并选择一系列即时可用的特效。在运行时,系统会处理所有必要的步骤,甚至包括动画期间的用户交互和状态更改,来保证你的动画平滑运行。实现动画效果是如此简单,你还能探索新的方式让 App 更生动出彩。

设计工具

Xcode 包含直观的设计工具,让你可以轻松地使用 SwiftUI 来构建界面。当你在设计画布中操作时,你的每一项编辑都会与相邻编辑器中的代码保持完全同步。在你键入时代码会立即以预览形式显示,你甚至可以在多种配置中查看 UI,例如浅色和深色外观。Xcode 会即时重新编译你的更改,并将它们插入到 App 的运行版本中,方便你随时查看和编辑。

动态替换。Swift 编译器和运行时已全面嵌入到 Xcode 中,你可以随时构建和运行你的 App。你看到的设计画布不仅看起来像是用户界面 — 它确实就是你实时运行的 App。此外,使用动态替换功能,Xcode 可以直接在实时运行的 App 中替换成编辑后的代码。

预览。你现在可以为任何 SwiftUI 视图创建一个或多个预览来获取样本数据。用户能看见的任何内容 (例如大字体、本地化或深色模式),你几乎都能配置。预览也可以显示你的 UI 在任何设备和方向上的呈现效果。

支持 UIKit 和 AppKit

SwiftUI 可与 UIKit 和 AppKit 协同工作,因此你可以在现有 App 中逐步采用它。当需要构建用户界面的新部分或重新构建现有部分时,可以使用 SwiftUI,同时保留代码库的其余部分。

如果你想使用 SwiftUI 中没有提供的界面元素,可以将 SwiftUI 与 UIKit 和 AppKit 混合搭配使用,以充分利用所有工具的优势。

使用入门

下载 Xcode,并使用这些资源来借助 SwiftUI 为所有 Apple 平台构建 App。

下载 Xcode