---
title: CAAction
framework: quartzcore
role: symbol
role_heading: Protocol
path: quartzcore/caaction
---

# CAAction

An interface that allows instances to respond to actions triggered by a Core Animation layer change.

## Declaration

```swift
protocol CAAction
```

## Overview

Overview When queried with an action identifier (a key path, an external action name, or a predefined action identifier) a layer returns the appropriate action object–which must implement the CAAction protocol–and sends it a run(forKey:object:arguments:) message.

## Topics

### Responding to an action

- [run(forKey:object:arguments:)](quartzcore/caaction/run(forkey:object:arguments:).md)

## Relationships

### Conforming Types

- [CAAnimation](quartzcore/caanimation.md)
- [CAAnimationGroup](quartzcore/caanimationgroup.md)
- [CABasicAnimation](quartzcore/cabasicanimation.md)
- [CAKeyframeAnimation](quartzcore/cakeyframeanimation.md)
- [CAPropertyAnimation](quartzcore/capropertyanimation.md)
- [CASpringAnimation](quartzcore/caspringanimation.md)
- [CATransition](quartzcore/catransition.md)

## See Also

### Layer Basics

- [CALayer](quartzcore/calayer.md)
- [CALayerDelegate](quartzcore/calayerdelegate.md)
- [CAConstraint](quartzcore/caconstraint.md)
- [CALayoutManager](quartzcore/calayoutmanager.md)
- [CAConstraintLayoutManager](quartzcore/caconstraintlayoutmanager.md)
