NSAnimation
An object that manages the timing and progress of animations in the user interface.
Declaration
class NSAnimationOverview
NSAnimation also lets you link together multiple animations so that when one animation ends another one starts. It does not provide any drawing support for animation and does not directly deal with views, targets, or actions.
NSAnimation objects have several characteristics, including duration, frame rate, and animation curve, which describes the relative speed of the animation over its course. You can set progress marks in an animation, each of which specifies a percentage of the animation completed; when an animation reaches a progress mark, it notifies its delegate and posts a notification to any observers. Animations execute in one of three blocking modes: blocking, non-blocking on the main thread, and non-blocking on a separate thread. The non-blocking modes permit the handling of user events while the animation is running.
Subclassing Notes
The usual usage pattern for NSAnimation is to make a subclass that overrides (at least) the currentProgress property to invoke the superclass implementation and then perform whatever animation action is needed. The method implementation might use the currentValue property and then use that value to update some drawing; as a consequence of getting the current value, the method animation(_:valueForProgress:) is sent to the delegate (if there is a delegate that implements the method). For more information on subclassing NSAnimation, see Animation Programming Guide for Cocoa.
Topics
Initializing an NSAnimation Object
Configuring an Animation
Managing the Delegate
Controlling and Monitoring an Animation
Managing Progress Marks
Linking Animations Together
Constants
NSAnimation.CurveNSAnimation.BlockingModeNSAnimation.ProgressNSAnimationProgressMark Notification Key