blob: ff5eb8d79b7098fa1c334995aa35fa5890ddc03d [file] [log] [blame] [view] [edit]
<!--docs:
title: "Animation timing"
layout: detail
section: components
excerpt: "Material Design animation timing curves."
iconId: animation
path: /catalog/animation-timing/
-->
# Animation timing
Like color and typography, motion can play a role in defining your app's style and brand. The
animation timing component provides implementations of the Material Motion easing curve types for
iOS.
<img src="docs/assets/animationtiming.gif" alt="An animation showing different Material Design animation timings." width="237">
## Design & API Documentation
<ul class="icon-list">
<li class="icon-list-item icon-list-item--spec"><a href="https://material.io/go/design-easing">Material Design guidelines: Easing</a></li>
</ul>
## Installation
### Installation with CocoaPods
To add this component to your Xcode project using CocoaPods, add the following to your `Podfile`:
```
pod 'MaterialComponents/AnimationTiming'
```
<!--{: .code-renderer.code-renderer--install }-->
Then, run the following command:
```bash
pod install
```
- - -
## Usage
### Importing
Before using animation timing, you'll need to import it:
<!--<div class="material-code-render" markdown="1">-->
#### Swift
```swift
import MaterialComponents
```
#### Objective-C
```objc
#import "MaterialAnimationTiming.h"
```
<!--</div>-->
## Examples
### Using Animation Timing
To use an animation timing curve select an appropriate a predefined MDCAnimationTimingFunction enum
value. Use this value to look up an animation curve's timing function. The timing function can then
be used in an animation.
<!--<div class="material-code-render" markdown="1">-->
#### Swift
```swift
let materialCurve = MDCAnimationTimingFunction.deceleration
let timingFunction = CAMediaTimingFunction.mdc_function(withType: materialCurve)
let animation = CABasicAnimation(keyPath:"transform.translation.x")
animation.timingFunction = timingFunction
```
#### Objc
```objc
MDCAnimationTimingFunction materialCurve = MDCAnimationTimingFunctionDeceleration;
CAMediaTimingFunction *timingFunction = [CAMediaTimingFunction mdc_functionWithType:materialCurve];
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform.translation.x"];
animation.timingFunction = timingFunction;
```
<!--</div>-->