Framework

Core Animation

Render, compose, and animate visual elements.

Overview

Core Animation provides high frame rates and smooth animations without burdening the CPU and slowing down your app. Most of the work required to draw each frame of an animation is done for you. You configure animation parameters such as the start and end points, and Core Animation does the rest, handing off most of the work to dedicated graphics hardware, to accelerate rendering. For more details, see Core Animation Programming Guide.

Topics

Layer Basics

CALayer

An object that manages image-based content and allows you to perform animations on that content.

CALayerDelegate

Methods your app can implement to respond to layer-related events.

CAConstraint

A representation of a single layout constraint between two layers.

CALayoutManager

Methods that allow an object to manage the layout of a layer and its sublayers.

CAConstraintLayoutManager

An object that provides a constraint-based layout manager.

CAAction

An interface that allows objects to respond to actions triggered by a CALayer change.

Text, Shapes, and Gradients

CATextLayer

A layer that provides simple text layout and rendering of plain or attributed strings.

CAShapeLayer

A layer that draws a cubic Bezier spline in its coordinate space.

CAGradientLayer

A layer that draws a color gradient over its background color, filling the shape of the layer (including rounded corners)

Animation

CAAnimation

The abstract superclass for animations in Core Animation.

CAAnimationDelegate

Methods your app can implement to respond when animations start and stop.

CAPropertyAnimation

An abstract subclass of CAAnimation for creating animations that manipulate the value of layer properties.

CABasicAnimation

An object that provides basic, single-keyframe animation capabilities for a layer property.

CAKeyframeAnimation

An object that provides keyframe animation capabilities for a layer object.

CASpringAnimation

An animation that applies a spring-like force to a layer's properties.

CATransition

An object that provides an animated transition between a layer's states.

CAValueFunction

An object that provides a flexible method of defining animated transformations.

Animation Groups

CAAnimationGroup

An object that allows multiple animations to be grouped and run concurrently.

CATransaction

A mechanism for grouping multiple layer-tree operations into atomic updates to the render tree.

Animation Timing

CACurrentMediaTime

Returns the current absolute time, in seconds.

CAMediaTimingFunction

A function that defines the pacing of an animation as a timing curve.

CAMediaTiming

Methods that model a hierarchical timing system, allowing objects to map time between their parent and local time.

CADisplayLink

A timer object that allows your application to synchronize its drawing to the refresh rate of the display.

Particle Systems

CAEmitterLayer

A layer that emits, animates, and renders a particle system.

CAEmitterCell

The definition of a particle emitted by a CAEmitterLayer.

Advanced Layer Options

CAScrollLayer

A layer that displays scrollable content larger than its own bounds.

CATiledLayer

A layer that provides a way to asynchronously provide tiles of the layer's content, potentially cached at multiple levels of detail.

CATransformLayer

Objects used to create true 3D layer hierarchies, rather than the flattened hierarchy rendering model used by other CALayer classes.

CAReplicatorLayer

A layer that creates a specified number of sublayer copies with varying geometric, temporal, and color transformations.

Metal and OpenGL

CAMetalLayer

A layer that manages a pool of Metal drawables.

CAMetalDrawable

A displayable resource that can be rendered or written to by Metal.

CAEAGLLayer

A layer that supports drawing OpenGL content in iOS and tvOS applications.

Deprecated
CAEDRMetadata

Metadata describing how extended dynamic range (EDR) values should be tone mapped.

Beta
CAOpenGLLayer

A layer that provides a layer suitable for rendering OpenGL content.

Deprecated
CARenderer

A layer that allows an application to render a layer tree into a Core OpenGL context.

Remote Display of Layer Content

Transforms

Transforms

Define transform matrices to apply affine transformations to layers in Core Animation.

Quartz Composer

QCCompositionLayer

A layer that loads, plays, and controls Quartz Composer compositions in a Core Animation layer hierarchy.

Deprecated

See Also

Beta Software

This documentation contains preliminary information about an API or technology in development. This information is subject to change, and software implemented according to this documentation should be tested with final operating system software.

Learn more about using Apple's beta software