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

借助 SwiftUI,你可以利用 Swift 的强大功能打造适合各个 Apple 平台的精美 App,而无需编写大量代码。你只需使用一套工具和 API,就能在任何 Apple 设备上为所有人带来更加出色的体验。
利用对 App 导航行为的编程控制来设置它的启动状态,管理尺寸类之间的转换,响应深层链接,等等。
构建高级的、可重复使用的布局来助力 App 的设计。除了 VStack 和 HStack 之外,SwiftUI 现在还提供了一个新的 Grid API,可以同时水平和垂直对齐视图。还有一个新的低级别自定 Layout API,让你完全控制构建 App 所需的布局。SwiftUI 现在还提供了 ViewThatFits,它让你可以指定给定视图的多个方案,并让 SwiftUI 自动选择最适合可用空间的方案。
通过使用单个唯一窗口,以及针对窗口位置、尺寸和尺寸调整的新修饰符,改进了对 macOS 上窗口设计的支持。使用 SwiftUI 构建菜单栏附加项,以便从 Mac 上的任何位置都可以访问 App 的功能。
SwiftUI 可与其他界面框架协同工作。现在,你可以使用 SwiftUI 的声明式语法轻松编写自定 UICollectionView 单元格。这些自定单元格与 UIKit 完全集成,提供了所有预期的功能,如滑动操作和单元格背景。
使用高度可自定的图表来实现数据可视化,这些图表在所有 Apple 平台上均呈现出色的观感。Swift Charts 使用 SwiftUI 的组合语法来创建多种多样的视图,无论是折线图和柱状图,还是量化波形图等高级类型,通通不是问题。Swift Charts 还支持旁白,帮助你将信息传递给所有用户。
SwiftUI 继续扩展,以覆盖更多现有的 UI 组件,例如半页表单,当用户想要查看更多信息时可在主视图向上滑出;或者共享表单,让用户可以使用设备上已安装的共享扩展。Mac 上的多列表格 API 现在可以在 iPad 上使用,让呈现表格数据更加简单轻松。
新的 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 在任何设备和方向上的呈现效果。
SwiftUI 可与 UIKit 和 AppKit 协同工作,因此你可以在现有 App 中逐步采用它。当需要构建用户界面的新部分或重新构建现有部分时,可以使用 SwiftUI,同时保留代码库的其余部分。
如果你想使用 SwiftUI 中没有提供的界面元素,可以将 SwiftUI 与 UIKit 和 AppKit 混合搭配使用,以充分利用所有工具的优势。