core-animation
GitHub提供Core Animation (QuartzCore) API参考,解答CALayer、各类动画及特效相关问题。适用于底层视图层动画开发,区别于SwiftUI声明式动画。
Trigger Scenarios
Install
npx skills add Prisma-Labs-Dev/apple-skills --skill core-animation -g -y
SKILL.md
Frontmatter
{
"name": "core-animation",
"agent": "Explore",
"context": "fork",
"description": "API reference: Core Animation (QuartzCore). Query for CALayer, CAAnimation, CABasicAnimation, CAKeyframeAnimation, CASpringAnimation, CATransaction, CAShapeLayer, CAGradientLayer, CAEmitterLayer, CATransform3D, CADisplayLink.",
"user-invocable": true
}
Core Animation Reference
Search these docs to answer questions about Core Animation (the QuartzCore framework). Use this skill when working directly with CALayer, layer-backed UIKit/AppKit views, explicit keyframe or spring animations on layer properties, particle systems, or per-frame callbacks via CADisplayLink.
For SwiftUI's declarative animation API (withAnimation, Animation, .animation(_:value:), transitions), use guide-swiftui-animations instead. For SwiftUI immediate-mode drawing, use swiftui/canvas.md and swiftui/graphicscontext.md.
Return Format
Always include:
- Summary — answer the question concisely.
- File paths — list relevant files for full details, e.g.:
calayer.mdfor layer geometry, contents, hierarchycabasicanimation.mdfor animating a single property between two valuescatransaction.mdfor batching, disabling implicit animations, or changing default duration
Files
| File | Content |
|---|---|
core-animation-index.md |
Full QuartzCore framework index — layer basics, animation classes, transactions, layer subclasses |
calayer.md |
CALayer — the root layer class: geometry, contents, hierarchy, layout, animations |
caanimation.md |
CAAnimation — abstract base class for all Core Animation animation types |
capropertyanimation.md |
CAPropertyAnimation — abstract subclass animating a single layer property |
cabasicanimation.md |
CABasicAnimation — interpolate a layer property between two values |
cakeyframeanimation.md |
CAKeyframeAnimation — animate a property through a sequence of keyframes |
caspringanimation.md |
CASpringAnimation — spring-based interpolation with mass, stiffness, damping |
caanimationgroup.md |
CAAnimationGroup — run multiple animations together with a shared duration |
catransition.md |
CATransition — fade, push, reveal, and move-in transitions between layer states |
camediatiming.md |
CAMediaTiming — protocol shared by layers and animations (beginTime, duration, repeat, speed) |
catransaction.md |
CATransaction — batch property changes, disable implicit animations, set default duration/timing |
catransform3d.md |
CATransform3D — 4×4 matrix used by CALayer.transform for 3D transforms |
cashapelayer.md |
CAShapeLayer — vector-shape layer driven by a CGPath (stroke, fill, line dash) |
cagradientlayer.md |
CAGradientLayer — axial, radial, and conic gradient layers |
caemitterlayer.md |
CAEmitterLayer — particle emitter layer (fire, smoke, confetti, sparkles) |
caemittercell.md |
CAEmitterCell — individual particle definition used by CAEmitterLayer |
careplicatorlayer.md |
CAReplicatorLayer — replicate a sublayer with offsets and transforms |
cametallayer.md |
CAMetalLayer — layer backed by a Metal drawable for GPU-rendered content |
catextlayer.md |
CATextLayer — layer that renders plain or attributed text |
catiledlayer.md |
CATiledLayer — tile-based asynchronous content rendering for large or zoomable layers |
cadisplaylink.md |
CADisplayLink — timer synchronized to the display's refresh rate |
When to Reach for Core Animation
- You need to animate a layer property SwiftUI/UIKit doesn't expose declaratively (e.g.,
CAGradientLayer.colors,CAShapeLayer.strokeEnd,CAEmitterLayer.birthRate). - You need explicit keyframe or spring control with timing functions (
CAMediaTimingFunction) per segment. - You want to batch implicit animations off (
CATransaction.setDisableActions(true)). - You need a
CADisplayLinkper-frame callback (custom drawing loops, scrubbing, physics). - You're rendering thousands of particles with
CAEmitterLayeror replicating sublayers withCAReplicatorLayer.
If your problem fits inside withAnimation { ... } in SwiftUI or UIView.animate { ... } in UIKit, prefer those — Core Animation sits underneath both and is rarely the right starting point in 2026-era code.
Fetching More Docs
- Search this skill's local
.mdfiles first. - If the topic is not here, check the other installed Apple skills, then grep their local files.
- If no installed skill has the page, the QuartzCore path on Apple's site is
/documentation/quartzcore/<symbol>— fetch via thesosumi.aiMarkdown mirror (e.g.https://sosumi.ai/documentation/quartzcore/camediatimingfunction) or by runningpnpm fetch-docagainst the apple-skills tooling.
Version History
- a76633b Current 2026-07-25 07:00


