AnimationRunner
public final class AnimationRunner<Value> where Value : VectorConvertible
This class is used to drive a single animation to completion. It is one-shot, so a runner is no longer useful after the animation that it is driving completes.
- They begin in a
pending
state. - Then enter the
running
state afterstart()
is called. - If the animation finishes, the runner enters the
completed (finished)
state. - If
cancel()
is called on the runner while in a running state, the runner enters thecompleted (cancelled)
state.
import Advance
let animation = 0.0.animation(
to: 100.0,
duration: 0.6,
timingFunction: UnitBezier.easeIn)
let runner = AnimationRunner(animation: animation)
.onChange { value in
/// Do something with the value.
}
.onCancel {
/// The animation was cancelled before it could finish.
}
.onFinish {
/// The animation finished successfully.
}
/// Kick off the animation
runner.start()
The resulting runner can be used to cancel the animation or to add additional observers or completion handlers.
-
Declaration
Swift
private(set) public var state: State { get set }
-
Instantiates a new runner for the given animation.
Declaration
Swift
public init<T>(animation: T) where Value == T.Value, T : Animation
-
Adds a handler that will be called every time the animation’s value changes.
Newly added handlers are invoked immediately when they are added with the latest value from the animation.
Declaration
Swift
@discardableResult public func onChange(_ handler: @escaping (Value) -> Void) -> AnimationRunner<Value>
-
Adds a handler that will be called when the animation completes (in either a finished or cancelled state).
If the runner is already in a completed state, the given handler will be called immediately.
Declaration
Swift
@discardableResult public func onCompletion(_ handler: @escaping (Result) -> Void) -> AnimationRunner<Value>
-
Adds a handler that will be called when the animation completes in a finished state.
If the runner is already in a finished state, the given handler will be called immediately.
Declaration
Swift
@discardableResult public func onFinish(_ handler: @escaping () -> Void) -> AnimationRunner<Value>
-
Adds a handler that will be called when the animation completes in a cancelled state.
If the runner is already in a cancelled state, the given handler will be called immediately.
Declaration
Swift
@discardableResult public func onCancel(_ handler: @escaping () -> Void) -> AnimationRunner<Value>
-
Starts the animation.
If the runner is not in the
pending
state, calls tostart()
will have no effect.Declaration
Swift
public func start()
-
Cancels the animation.
If the runner is not in the
running
state, calls tocancel()
will have no effect.Declaration
Swift
public func cancel()
-
Declaration
Swift
public var value: Value { get }
-
Declaration
Swift
public var velocity: Value { get }
-
Declaration
Swift
@discardableResult public func observe(_ observer: @escaping (Value) -> Void) -> Subscription
-
Declaration
Swift
public func bound<T>(to object: T, keyPath: ReferenceWritableKeyPath<T, Value>) -> AnimationRunner<Value>
-
Represents the current state of an animation runner.
See moreDeclaration
Swift
public enum State : Equatable