关于 core-animation
面向直接使用 Core Animation 和 QuartzCore 的开发者的参考技能,按主题整理图层、动画类型、事务、计时和显示回调文档。
主要功能
- 01QuartzCore 主题索引
- 02图层与层级指南
- 03属性、关键帧和弹簧动画
- 04动画组合与过渡
- 05粒子与显示链接参考
适用场景
- 01为 CALayer 属性添加动画
- 02创建关键帧或弹簧效果
- 03使用 CATransaction 批量处理图层更改
- 04构建粒子或逐帧效果
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ prisma-labs-dev/ apple-skills --skill core-animation安装后在 Claude Code 中输入/core-animation确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
caanimation.mdcaanimationgroup.mdcabasicanimation.mdcadisplaylink.mdcaemittercell.mdcaemitterlayer.mdcagradientlayer.mdcakeyframeanimation.mdcalayer.mdcamediatiming.mdcametallayer.mdcapropertyanimation.mdcareplicatorlayer.mdcashapelayer.mdcaspringanimation.mdcatextlayer.mdcatiledlayer.mdcatransaction.mdcatransform3d.mdcatransition.mdcore-animation-index.md详细介绍
Core Animation 参考
搜索这些文档以解答有关 Core Animation(QuartzCore 框架)的问题。直接使用 CALayer、由 layer 支持的 UIKit/AppKit 视图、对 layer 属性进行显式关键帧或弹簧动画、粒子系统,或通过 CADisplayLink 实现逐帧回调时,请使用此技能。
对于 SwiftUI 的声明式动画 API(withAnimation、Animation、.animation(_:value:)、过渡),请改用 Apple 的 swiftui-specialist 技能(其中的动画参考)。对于 SwiftUI 即时模式绘图,请使用 swiftui/canvas.md 和 swiftui/graphicscontext.md。
返回格式
始终包含:
- 摘要 — 简洁地回答问题。
- 文件路径 — 列出相关文件以供查看完整详情,例如:
calayer.md:图层几何、内容、层级结构cabasicanimation.md:在两个值之间为单个属性添加动画catransaction.md:批量处理、禁用隐式动画或更改默认时长
文件
| 文件 | 内容 |
|---|---|
core-animation-index.md | QuartzCore 框架完整索引 — 图层基础、动画类、事务、图层子类 |
calayer.md | CALayer — 根图层类:几何、内容、层级结构、布局、动画 |
caanimation.md | CAAnimation — 所有 Core Animation 动画类型的抽象基类 |
capropertyanimation.md | CAPropertyAnimation — 对单个图层属性添加动画的抽象子类 |
cabasicanimation.md | CABasicAnimation — 在两个值之间插值计算图层属性 |
cakeyframeanimation.md | CAKeyframeAnimation — 通过一系列关键帧为属性添加动画 |
caspringanimation.md | CASpringAnimation — 基于弹簧的插值计算,包含质量、刚度和阻尼 |
caanimationgroup.md | CAAnimationGroup — 以共享时长同时运行多个动画 |
catransition.md | CATransition — 图层状态之间的淡入淡出、推入、揭示和移入过渡 |
camediatiming.md | CAMediaTiming — 图层和动画共用的协议(beginTime、duration、repeat、speed) |
catransaction.md | CATransaction — 批量处理属性更改、禁用隐式动画、设置默认时长/时间参数 |
catransform3d.md | CATransform3D — CALayer.transform 用于 3D 变换的 4×4 矩阵 |
cashapelayer.md | CAShapeLayer — 由 CGPath 驱动的矢量形状图层(描边、填充、虚线) |
cagradientlayer.md | CAGradientLayer — 轴向、径向和圆锥渐变图层 |
caemitterlayer.md | CAEmitterLayer — 粒子发射器图层(火焰、烟雾、彩纸、闪光) |
caemittercell.md | CAEmitterCell — CAEmitterLayer 使用的单个粒子定义 |
careplicatorlayer.md | CAReplicatorLayer — 使用偏移和变换复制子图层 |
cametallayer.md | CAMetalLayer — 由 Metal drawable 支持、用于 GPU 渲染内容的图层 |
catextlayer.md | CATextLayer — 渲染纯文本或富文本的图层 |
catiledlayer.md | CATiledLayer — 用于大型或可缩放图层的基于图块的异步内容渲染 |
cadisplaylink.md | CADisplayLink — 与显示器刷新率同步的计时器 |
何时使用 Core Animation
- 你需要为 SwiftUI/UIKit 未以声明式方式公开的图层属性添加动画(例如
CAGradientLayer.colors、CAShapeLayer.strokeEnd、CAEmitterLayer.birthRate)。 - 你需要明确控制关键帧或弹簧效果,并为各个片段设置计时函数(
CAMediaTimingFunction)。 - 你想批量关闭隐式动画(
CATransaction.setDisableActions(true))。 - 你需要
CADisplayLink的逐帧回调(自定义绘制循环、拖动定位、物理模拟)。 - 你要使用
CAEmitterLayer渲染数千个粒子,或使用CAReplicatorLayer复制子图层。
如果你的问题可以通过 SwiftUI 中的 withAnimation { ... } 或 UIKit 中的 UIView.animate { ... } 解决,优先使用它们——Core Animation 位于两者底层,在 2026 年的代码中很少是合适的起点。
获取更多文档
- 先搜索此技能本地的
.md文件。 - 如果这里没有相关主题,请查看其他已安装的 Apple 技能,然后搜索它们的本地文件。
- 如果没有已安装的技能包含该页面,Apple 网站上的 QuartzCore 路径为
/documentation/quartzcore/<symbol>——通过sosumi.aiMarkdown 镜像获取(例如https://sosumi.ai/documentation/quartzcore/camediatimingfunction),或运行pnpm fetch-doc,使用 apple-skills 工具。
评论
支持 Markdown