SwiftUI

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

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

SwiftUI 的新功能

Navigation API

利用对 App 导航行为的编程控制来设置它的启动状态,管理尺寸类之间的转换,响应深层链接,等等。

高级布局控制

构建高级的、可重复使用的布局来助力 App 的设计。除了 VStack 和 HStack 之外,SwiftUI 现在还提供了一个新的 Grid API,可以同时水平和垂直对齐视图。还有一个新的低级别自定 Layout API,让你完全控制构建 App 所需的布局。SwiftUI 现在还提供了 ViewThatFits,它让你可以指定给定视图的多个方案,并让 SwiftUI 自动选择最适合可用空间的方案。

针对 macOS 的改进

通过使用单个唯一窗口,以及针对窗口位置、尺寸和尺寸调整的新修饰符,改进了对 macOS 上窗口设计的支持。使用 SwiftUI 构建菜单栏附加项,以便从 Mac 上的任何位置都可以访问 App 的功能。

与 UIKit 更好协作

SwiftUI 可与其他界面框架协同工作。现在,你可以使用 SwiftUI 的声明式语法轻松编写自定 UICollectionView 单元格。这些自定单元格与 UIKit 完全集成,提供了所有预期的功能,如滑动操作和单元格背景。

Swift Charts

使用高度可自定的图表来实现数据可视化,这些图表在所有 Apple 平台上均呈现出色的观感。Swift Charts 使用 SwiftUI 的组合语法来创建多种多样的视图,无论是折线图和柱状图,还是量化波形图等高级类型,通通不是问题。Swift Charts 还支持旁白,帮助你将信息传递给所有用户。

支持其他组件

SwiftUI 继续扩展,以覆盖更多现有的 UI 组件,例如半页表单,当用户想要查看更多信息时可在主视图向上滑出;或者共享表单,让用户可以使用设备上已安装的共享扩展。Mac 上的多列表格 API 现在可以在 iPad 上使用,让呈现表格数据更加简单轻松。

全新 Sharing API

新的 Transferable 协议使你的数据可用于剪贴板、拖放和共享表单,现在可以使用 SwiftUI 直接调用这些功能。

锁定屏幕上的小组件

使用 SwiftUI 使你的小组件在锁定屏幕上呈现出色的效果。设计漂亮的图标、仪表板和其他元素,让用户可以快速一览信息。

声明式语法

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