---
title: CAMediaTiming
framework: quartzcore
role: symbol
role_heading: Protocol
path: quartzcore/camediatiming
---

# CAMediaTiming

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

## Declaration

```swift
protocol CAMediaTiming
```

## Overview

Overview Absolute time is defined as mach time converted to seconds. The CACurrentMediaTime() function is provided as a convenience for getting the current absolute time. The conversion from parent time to local time has two stages: Conversion to “active local time.” This includes the point at which the object appears in the parent object’s timeline and how fast it plays relative to the parent. Conversion from “active local time” to “basic local time.” The timing model allows for objects to repeat their basic duration multiple times and, optionally, to play backwards before repeating.

## Topics

### Animation Start Time

- [beginTime](quartzcore/camediatiming/begintime.md)
- [timeOffset](quartzcore/camediatiming/timeoffset.md)

### Repeating Animations

- [repeatCount](quartzcore/camediatiming/repeatcount.md)
- [repeatDuration](quartzcore/camediatiming/repeatduration.md)

### Duration and Speed

- [duration](quartzcore/camediatiming/duration.md)
- [speed](quartzcore/camediatiming/speed.md)

### Playback Modes

- [autoreverses](quartzcore/camediatiming/autoreverses.md)
- [fillMode](quartzcore/camediatiming/fillmode.md)

### Constants

- [Fill Modes](quartzcore/fill-modes.md)

## Relationships

### Conforming Types

- [CAAnimation](quartzcore/caanimation.md)
- [CAAnimationGroup](quartzcore/caanimationgroup.md)
- [CABasicAnimation](quartzcore/cabasicanimation.md)
- [CAEAGLLayer](quartzcore/caeagllayer.md)
- [CAEmitterCell](quartzcore/caemittercell.md)
- [CAEmitterLayer](quartzcore/caemitterlayer.md)
- [CAGradientLayer](quartzcore/cagradientlayer.md)
- [CAKeyframeAnimation](quartzcore/cakeyframeanimation.md)
- [CALayer](quartzcore/calayer.md)
- [CAMetalLayer](quartzcore/cametallayer.md)
- [CAOpenGLLayer](quartzcore/caopengllayer.md)
- [CAPropertyAnimation](quartzcore/capropertyanimation.md)
- [CAReplicatorLayer](quartzcore/careplicatorlayer.md)
- [CAScrollLayer](quartzcore/cascrolllayer.md)
- [CAShapeLayer](quartzcore/cashapelayer.md)
- [CASpringAnimation](quartzcore/caspringanimation.md)
- [CATextLayer](quartzcore/catextlayer.md)
- [CATiledLayer](quartzcore/catiledlayer.md)
- [CATransformLayer](quartzcore/catransformlayer.md)
- [CATransition](quartzcore/catransition.md)

## See Also

### Animation Timing

- [CACurrentMediaTime()](quartzcore/cacurrentmediatime().md)
- [CAMediaTimingFunction](quartzcore/camediatimingfunction.md)
- [CADisplayLink](quartzcore/cadisplaylink.md)
- [CAMetalDisplayLink](quartzcore/cametaldisplaylink.md)
- [CAMetalDisplayLink.Update](quartzcore/cametaldisplaylink/update.md)
- [CAMetalDisplayLinkDelegate](quartzcore/cametaldisplaylinkdelegate.md)
