用途:审查、编写与修复 SwiftUI 动画,按 Swift 6.3 模式应用现代动画 API,兼顾时序、转场与无障碍。
主要能力:状态驱动动画(withAnimation、.animation(:body:)、.animation(:value:));多阶段 PhaseAnimator;关键帧 KeyframeAnimator(LinearKeyframe、CubicKeyframe、SpringKeyframe、MoveKeyframe,支持 repeating);共享元素 matchedGeometryEffect;导航缩放转场(matchedTransitionSource + .navigationTransition(.zoom));插入移除 .transition();原地内容变化 .contentTransition()(含 .numericText);SF Symbol 符号特效(.bounce、.pulse、.variableColor、.scale、.appear、.disappear、.replace;.breathe、.rotate、.wiggle 需 iOS 18+);符号渲染模式与变量符号;@Animatable 宏;Spring 预设(.smooth、.snappy、.bouncy)与 Spring(duration:bounce:)。文中含分类排查流程:先定动画类别,再选曲线,最后应用并验证。
用法要点:优先用 withAnimation 包裹状态变更;需精确范围时用 .animation(:body:) 或 .animation(:value:);内容转场必须搭配 animation 才生效;.navigationTransition 施加于目标视图最外层;matchedGeometryEffect 每个 ID 同一时刻只应有一个可见源视图。
限制与注意:keyframeAnimator/PhaseAnimator 闭包每帧执行,避免昂贵计算与 actor 隔离读取;Swift 6 下关键帧闭包为 @Sendable,需提前捕获状态;应支持 accessibilityReduceMotion,符号可用 symbolEffectsRemoved 移除继承效果;不要用 DispatchQueue 或 UIView.animate 延迟动画,改用 .spring.delay;动画状态变更置于 @MainActor。资料提到的高级参考与 Core Animation 桥接文档未在给定文本中展开,细节暂未提供。