<!--
{
  "availability" : [
    "iOS: 10.0.0 -",
    "iPadOS: 10.0.0 -",
    "macCatalyst: 13.1.0 -",
    "tvOS: 10.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "UIKit",
  "identifier" : "/documentation/UIKit/UICubicTimingParameters",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "UIKit"
    ],
    "preciseIdentifier" : "c:objc(cs)UICubicTimingParameters"
  },
  "title" : "UICubicTimingParameters"
}
-->

# UICubicTimingParameters

The timing information for animations in the form of a cubic Bézier curve.

```
@MainActor class UICubicTimingParameters
```

## Overview

Use a [`UICubicTimingParameters`](/documentation/UIKit/UICubicTimingParameters) object to specify custom timing curves when creating animations with objects that adopt the [`UIViewAnimating`](/documentation/UIKit/UIViewAnimating) protocol, such as [`UIViewPropertyAnimator`](/documentation/UIKit/UIViewPropertyAnimator).

A cubic Bézier timing curve consists of a line whose starting point is (`0`, `0`), whose end point is (`1`, `1`), and whose shape is defined by two control points. The slope of the line at each point in time defines the speed of the animation at that time. Steep slopes cause animations to appear to run faster and shallower slopes cause them to appear to run slower. The following graph shows a timing curve where the animations start fast and finish fast but run more slowly through the middle section.

![A graph that shows a cubic Bézier timing curve.](images/com.apple.uikit/media-1965827@2x.png)

## Topics

### Initializing a cubic timing parameters object

[`-  init`](/documentation/UIKit/UICubicTimingParameters/init())

Initializes the object with the system’s default timing curve.

[`-  initWithAnimationCurve:`](/documentation/UIKit/UICubicTimingParameters/init(animationCurve:))

Initializes the object with the specified UIKit timing curve.

[`-  initWithControlPoint1:controlPoint2:`](/documentation/UIKit/UICubicTimingParameters/init(controlPoint1:controlPoint2:))

Initializes the object with the specified control points for a cubic Bézier curve.

[`-  initWithCoder:`](/documentation/UIKit/UICubicTimingParameters/init(coder:))

Creates a timing parameters object from data in an unarchiver.

### Getting the timing parameters

[`animationCurve`](/documentation/UIKit/UICubicTimingParameters/animationCurve)

The standard UIKit animation curve to use for timing.

[`controlPoint1`](/documentation/UIKit/UICubicTimingParameters/controlPoint1)

The first control point for the cubic Bézier curve.

[`controlPoint2`](/documentation/UIKit/UICubicTimingParameters/controlPoint2)

The second control point of the cubic Bézier curve.

## Relationships

### Conforms To

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`Sendable`](/documentation/Swift/Sendable)

[`CVarArg`](/documentation/Swift/CVarArg)

[`NSCoding`](/documentation/Foundation/NSCoding)

[`Hashable`](/documentation/Swift/Hashable)

[`UITimingCurveProvider`](/documentation/UIKit/UITimingCurveProvider)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`NSCopying`](/documentation/Foundation/NSCopying)

[`Equatable`](/documentation/Swift/Equatable)

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)