用途:编写 iOS 动画代码时,直接使用 Apple 框架。资料指出第三方动画库会带来依赖风险,且常滞后于新系统版本;Apple API 针对渲染管线优化,并随 iOS 版本免费获得改进。
主要能力:提供 API 选择表,按需求匹配机制,如状态驱动用 withAnimation / .animation(_:value:),多步序列用 PhaseAnimator,逐属性时间线用 KeyframeAnimator,视图间英雄转场用 matchedGeometryEffect + Namespace,导航缩放用 .navigationTransition(.zoom)(iOS 18+),内容切换用 .contentTransition(),滚动效果用 .scrollTransition,SF Symbol 用 .symbolEffect(),交互式 UIKit 用 UIViewPropertyAnimator,图层动画用 CABasicAnimation / CASpringAnimation,物理模拟用 UIDynamicAnimator,触觉反馈用 .sensoryFeedback,动态渐变用 MeshGradient。
使用方式:先判断系统是否已提供所需动效,标准导航转场、SF Symbol 效果、数值文本过渡、默认弹簧等场景应跳过自定义动画。需要自定义时按任务加载参考文件:SwiftUI 声明式动画、转场、手势动画、Core Animation 与 UIKit 模式。弹簧参数推荐使用 duration 与 bounce,预设包括 .smooth、.snappy、.bouncy、.interactiveSpring。
适用场景:英雄转场、自定义手势、多属性编排、标志性动效、手势驱动交互等系统未覆盖的空间关系。
限制与要求:必须处理 Reduce Motion,提供交叉淡入、缩短或瞬时回退;动画须可中断,弹簧自动重定向,手势动画由用户控制;性能上避免动画视图标识变化、为阴影提供 shadowPath、列表内避免逐项模糊/阴影、用 Instruments 的 Animation Hitches 模板排查掉帧。完成前需通过 API 适配、Reduce Motion、可中断性、重负载或持续动效四项检查。具体代码示例见各参考文件,资料未提供完整代码。