An object that drives an interactive animation between one view controller and another.


A percent-driven interactive transition object relies on a transition animator delegate—a custom object that adopts the UIViewControllerAnimatedTransitioning protocol—to set up and perform the animations.

To use this concrete class, return an instance of it from your view controller delegate when asked for an interactive transition controller. As user events arrive that would affect the progress of a transition, call the update(_:), cancel(), and finish() methods to reflect the current progress. For example, you might call these methods from a gesture recognizer to reflect how much of the gesture is completed.

You can subclass UIPercentDrivenInteractiveTransition, but if you do so you must start each of your method overrides with a call to the super implementation of the method.


Accessing Transition Attributes

var timingCurve: UITimingCurveProvider?

The timing curve to use when driving the animations.

var completionCurve: UIViewAnimationCurve

Indicates the animation completion curve for an interactive transition.

var duration: CGFloat

The overall duration (in seconds) of the transition animation.

var percentComplete: CGFloat

The amount of the transition (specified as a percentage of the overall duration) that is complete.

var completionSpeed: CGFloat

The speed of the transition animation.

var wantsInteractiveStart: Bool

A Boolean value indicating whether the animations are interactive initially.

Managing a Transition

func update(CGFloat)

Updates the completion percentage of the transition.

func pause()

Pauses an interruptible transition animation.

func cancel()

Notifies the system that user interactions canceled the transition.

func finish()

Notifies the system that user interactions signaled the completion of the transition.

See Also

Interactive Transitions

protocol UIViewControllerInteractiveTransitioning

A set of methods that enable an object (such as a navigation controller) to drive a view controller transition.

protocol UIViewImplicitlyAnimating

An interface for modifying an animation while it is running.