审查 iOS动画代码的正确性、性能、可访问性以及 Apple API 最佳实践。用于审查包含动画代码的 .swift 文件。
iOS 动画代码回顾 QQ快速引用是一项面向实际任务的技能,主要用于春季参数, 动画误用, 相/ 键框错误;参考 / swiftui- animation- patters. md.;
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
| 问题类型 | 参考文档 |
|---|---|
弹性参数、withAnimation 误用、阶段/关键帧(phase/keyframe)缺陷 |
references/swiftui-animation-patterns.md |
| 掉帧、离屏渲染、主线程阻塞 | references/performance.md |
| 减少动态效果(Reduce Motion)、VoiceOver、运动敏感度适配 | references/accessibility.md |
过渡协议(Transition protocol)、matchedGeometryEffect、导航过渡 |
references/transitions.md |
对本次审查范围内的文件,**必须严格按顺序**完成以下步骤。若任一环节未通过,则需 **跳过该问题发现**、**重新锚定定位** 或 **降级为提问项** —— 不得在未满足通过条件时直接提出指控性结论。
| 步骤 | 你的操作 | 通过条件(客观标准) |
|---|---|---|
| 1. 清点 | 列出所有待审文件,并标注其中动画 API 出现的位置(行号范围或符号名:withAnimation、.animation、matchedGeometryEffect、PhaseAnimator、UIKit/CA 动画器等)。 |
已形成书面清单;明确标注不含任何动画 API 的文件为**不在审查范围内**。 |
| 2. 锚定 | 在命名具体问题前,重读当前文件或 diff 片段中所引用的代码区域。 | 每个 [FILE:LINE] 标注仍能复现对应行为;若行号已失效,则须修正或直接放弃该问题发现。 |
| 3. 举证 | 对于涉及框架特性的断言(如弹性曲线、Transition 协议遵循情况、Reduce Motion 适配),需对照“速查表”中对应行,在 references/*.md 中交叉验证。 |
问题描述中需明确指出所引用的参考文档路径;若仅涉及结构/可读性且无框架规范约束,则注明为 inline-only。 |
| 4. 报告 | 按“输出格式”要求输出问题发现。 | 标题严格匹配 [FILE:LINE] ISSUE_TITLE 格式;下方检查清单中的条目,仅在已通过第 1–2 步覆盖对应代码的前提下才予以应用。 |
每个问题发现均按如下格式报告:
[FILE:LINE] ISSUE_TITLE
示例:[AnimatedCard.swift:42] Missing Reduce Motion fallback for spring animation
所有详细说明、代码建议及理由均置于标题行之后。
@Environment(.accessibilityReduceMotion) — 所有动画均已提供 Reduce Motion 回退方案.sensoryFeedback)或音频提示duration/bounce 参数(除非是 UIKit/CA 层,否则避免直接使用 mass/stiffness/damping 等底层参数)value: 参数的 .animation()withAnimation 包裹的是状态变更逻辑,而非视图声明matchedGeometryEffect 所用 ID 在其命名空间内稳定且唯一geometryGroup()PhaseAnimator、symbolEffect)具有有限相位数或恰当触发机制CATransaction.setAnimationDuration()(应改用 UIView.animate)shadowPath(避免逐帧重计算).id() 修饰符进行动画(此举会破坏视图身份;应改用 transition 或 matchedGeometryEffect)withAnimation 作用域问题 → swiftui-animation-patterns.mdmatchedGeometryEffect 显示异常,或自定义 Transition 存在缺陷 → transitions.mdshadowPath 的阴影、遮罩)进行了动画?withAnimation 是否仅包裹了最小必需的状态变更?是否存在包裹无关状态修改的情况?matchedGeometryEffect:源与目标是否使用相同的 ID 和命名空间?是否保证同一时刻仅有一个可见?相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章