用途:审查 iOS 动画代码,覆盖正确性、性能、无障碍与 Apple API 最佳实践,适用于评审含动画代码的 .swift 文件。
主要能力:按四类问题给出参考——弹簧参数、withAnimation 误用、phase/keyframe 缺陷;掉帧、离屏渲染、主线程阻塞;Reduce Motion、VoiceOver、运动敏感;Transition 协议、matchedGeometryEffect、导航转场。
使用方式:按硬性门禁顺序执行。1)清点:列出受审文件及动画 API 出现位置(行范围或符号名,如 withAnimation、.animation、matchedGeometryEffect、PhaseAnimator、UIKit/CA 动画器),无动画 API 的文件明确标为范围外。2)锚定:命名问题前重读当前文件或 diff 中的引用区域,确保 [FILE:LINE] 仍成立,过期行号需修正或丢弃该发现。3)证据:对框架相关断言(弹簧曲线、Transition 一致性、Reduce Motion)对照 Quick Reference 与 references/*.md 交叉核对,并注明所用参考文件或标注 inline-only。4)报告:按 [FILE:LINE] ISSUE_TITLE 格式输出,例如 [AnimatedCard.swift:42] Missing Reduce Motion fallback for spring animation,细节、代码建议与理由置于标题行之后。
检查清单要点:检查 @Environment(.accessibilityReduceMotion) 回退;动画不应是唯一反馈通道,重要状态变化配合 .sensoryFeedback 或音频;避免重复系统动效;高频交互动画应简短或不加;动画可中断;弹簧用 duration/bounce(UIKit/CA 除外);不用无 value: 的废弃 .animation();withAnimation 包裹状态变化而非视图声明;matchedGeometryEffect ID 稳定唯一;父几何动画且子视图出现时用 geometryGroup();循环动画有有限相位或合适触发;UIView 层不用 CATransaction.setAnimationDuration();交互动画处理中断;阴影动画提供 shadowPath;手势动画释放时保留速度;手势反馈符合空间预期;不动画 .id()。
参考加载时机:弹簧或 withAnimation 作用域问题→swiftui-animation-patterns.md;卡顿、掉帧或滚动视图昂贵动画→performance.md;缺少 Reduce Motion 或运动无障碍→accessibility.md;matchedGeometryEffect 故障或自定义 Transition 缺陷→transitions.md。
限制:资料未提供安装命令、平台支持范围、收费与价格信息,暂未提供。