NSAnimation​Context is analogous to CATransaction and are similar in overall concept to NSGraphics​Context. Each thread maintains its own stack of nestable NSAnimation​Context instances, with each new instance initialized as a copy of the instance below (so, inheriting its current properties).


Multiple NSAnimation​Context instances can be nested, allowing a given block of code to initiate animations using its own specified duration without affecting animations initiated by surrounding code.

[NSAnimationContext beginGrouping];
// Animate enclosed operations with a duration of 1 second
[[NSAnimationContext currentContext] setDuration:1.0];
[[aView animator] setFrame:newFrame];
    [NSAnimationContext beginGrouping];
    // Animate alpha fades with half-second duration
    [[NSAnimationContext currentContext] setDuration:0.5];
    [[aView animator] setAlphaValue:0.75];
    [[bView animator] setAlphaValue:0.75];
    [NSAnimationContext endGrouping];
// Will animate with a duration of 1 second
[[bView animator] setFrame:secondFrame];
[NSAnimationContext endGrouping];


Grouping Transactions

class func begin​Grouping()

Creates a new animation grouping.

class func end​Grouping()

Ends the current animation grouping.

Getting the Current Animation Context

class func current()

Returns the current animation context.

Animation Completion Handlers

var completion​Handler:​ (() -> Void)?

A completion Block that is called when the animations in the grouping are completed.

class func run​Animation​Group((NSAnimation​Context) -> Void, completion​Handler:​ (() -> Void)? = nil)

Allows you to specify a completion block body after the set of animation actions whose completion will trigger the completion block.

Modifying the Animation Duration

var duration:​ Time​Interval

The duration used by animations created as a result of setting new values for an animatable property.

var timing​Function:​ CAMedia​Timing​Function?

The timing function used for all animations within this animation proxy group.

Implicit Animation

var allows​Implicit​Animation:​ Bool

Determine if animations are enabled or not for animations that occur as a result of another property change.


Inherits From