WWDC 2023 上 SwiftUI 5 的主要更新
在 WWDC 2023 上,苹果发布了其声明式 UI 编程框架 SwiftUI 的最新版本——SwiftUI 5。本次更新对框架的反应式基础进行了全面革新,引入了新的 Observation 框架,并增加了对分阶段动画的支持、改进了 ScrollView、新增了手势等功能。
Observation 框架的引入
新的 Observation 框架 带来了多项优势,包括简化的语法和语义、支持跟踪可选值和集合,以及扩展了 State 和 Environment 的使用,取代了 StateObject 和 EnvironmentObject。此外,Observation 框架不再需要为每个可观察属性使用 @Published 属性包装器,而是通过在类级别使用 @Observable 宏使该类的所有属性可观察。例如:
@Observable class Library {
var books: [Book] = [Book(), Book(), Book()]
}对于不希望被观察的属性,可以使用 ObservationIgnored 宏进行标记。对于已经使用 SwiftUI 和 Combine 的开发者,新框架的采用可以逐步进行。
ScrollView 的改进
SwiftUI 5 增加了对 ScrollView 的 scrollPosition 跟踪功能。当视图滚动到新位置时,scrollPosition 修饰符会更新标识第一个可见视图的状态变量。此外,开发者可以使用新的 ScrollTargetBehaviour 协议选择滚动行为。
分阶段动画
SwiftUI 动画引入了完成处理程序,支持定义分阶段动画,即动画通过一系列状态或阶段进行,可能是循环的。开发者可以使用新的 PhaseAnimator 视图 来迭代阶段序列,并为每个阶段定义特定的动画。
新手势
SwiftUI 5 引入了两个新的手势:RotateGesture 和 MagnifyGesture,分别用于跟踪视图的旋转和放大。这两个新类提供了更简洁的语法,使得对视图应用旋转和放大变换更加容易。
兼容性
这些新功能将于 iOS 17、iPadOS 17、macOS 17 及苹果其他操作系统秋季发布时正式可用。更多关于 SwiftUI 的新功能,请查看 Apple 在 WWDC 2023 上的演示。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。