SwiftUI 的新功能

深入探索 SwiftUI 的最新特性和功能。2027 年发布的版本对 SwiftUI 进行了重大升级,提供了一个强大的全新 Document API 和多个扩展的工具栏控件,并显著提升了构建时和数据流的性能。


Xcode 27 智能体技能

Xcode 27 通过一系列可在编码智能体中使用的技能,来帮助你采用全新的 SwiftUI API 和推荐做法。相应技能会在整个代码中应用 SwiftUI 惯例,并引导你采用 2027 版本中提供的全新 API。


工具栏自定

借助全新工具栏 API,你可以精准控制在 App 重新调整大小时各个项目的显示效果。visibilityPrioritymodifier 用于使关键组保持可见,toolbarOverflowMenu 用于将低优先级项目永久放入溢出菜单中,而 topBarPinnedTrailing 用于将共享按钮等关键操作始终固定到后置边缘。全新 toolbarMinimizeBehavior 修饰符会在用户滚动浏览时自动折叠导航栏。


Document API

借助扩展后的 SwiftUI Document API,你可以直接控制已存文档的结构。对于读取和写入,请遵从 WritableDocument 和 ReadableDocument,它们通过 Foundation Subprogress API 提供了异步、增量式磁盘操作和进度报告。利用 DocumentCreationSource API,你可以声明多个创建来源,每个来源对应一个 NewDocumentButton。


呈现和交互

借助全新的可重新排序容器 API,用户可以通过拖动来重新排列任一容器而不仅仅是 List 中的项目——只需在 List、LazyVGrid 等容器中使用同一代码即可。重新排序功能首次支持 watchOS。只需将 swipeActionsContainer 添加到任一 ScrollView,即可在整个布局中实现轻扫操作。确认对话框和提醒现在支持弹窗使用的同一项目绑定模式,因此在设置绑定值后,呈现内容会自动显示。


性能和数据流

AsyncImage 现在默认支持标准 HTTP 缓存,并且无需更改任何代码即可识别服务器缓存标头。要实现更精细的控制,可以传递一个自定的 URLRequest,或通过一个使用 asyncImageURLSessionmodifier 的定制 URLCache 来配置 URLSession。由于 State 已变成宏,存储在 @State 中的类现在会进行惰性初始化,即每个视图生命周期只初始化一次。而 ViewBuilder 已经过更新 (现在公开为 ContentBuilder),因此 Xcode 27 中的构建时间将大幅缩短。


各项功能可能有所变化。某些功能和服务仅适用于部分地区或语言;某些功能的提供情况可能会因当地的法律法规而异。