---
title: timingFunctions
framework: quartzcore
role: symbol
role_heading: Instance Property
path: quartzcore/cakeyframeanimation/timingfunctions
---

# timingFunctions

An optional array of CAMediaTimingFunction objects that define the pacing for each keyframe segment.

## Declaration

```swift
var timingFunctions: [CAMediaTimingFunction]? { get set }
```

## Discussion

Discussion You can use this array to apply ease-in, ease-out, or custom timing curves to the points that lie between two keyframe values. If the number of keyframes in the values property is n, then this property should contain n-1 objects. If you provide timing information in the keyTimes property, the timing functions you specify using this property further modify the timing between those values. If you do not assign a value to the keyTimes property, the timing functions modify the default timing provided by the animation object. If you also specify a timing function in the animation object’s timingFunction property, that function is applied first followed by the timing function for the specific keyframe segment. For information on how to create a timing function, see CAMediaTimingFunction.

## See Also

### Keyframe timing

- [keyTimes](quartzcore/cakeyframeanimation/keytimes.md)
- [calculationMode](quartzcore/cakeyframeanimation/calculationmode.md)
