An Animation Queue for iOS
Switch branches/tags
Nothing to show
Latest commit 63ee81f Dec 22, 2011 @aitskovi aitskovi Merge pull request #2 from raid5/master
Updated another code block in README



An animation queue for UIView animations in Objective C


AIAnimationQueue is a singleton that allows sequencing of code execution. AIAnimationQueue supports adding both animations and computations to the queue. The actions added to the queue will be performed sequentially. AIAnimationQueue supports passing code packed in both method and block forms. In addition, it also supports using arguments when passing a method (selector). Computation can be queued and used in exchange for losing the right to specify a didStopSelector in the animation.


Packing the Animation/Computation: When packing the animation make sure to leave out

[UIView beginAnimation:(NSString *)animationID context:(void *)context];
[UIView setAnimationDelegate:(id)target];
[UIView setAnimationDidStopSelector:(SEL)selector];
[UIView commitAnimation];

You should end-up with something like this:

- (void)animation {
	[UIView setAnimationDuration:2.0];
	label.frame = CGRectMake(0,0,0,0);

or in block form:

void(^block)(void) = : {
	[UIView setAnimationDuration:2.0];
	[label.frame = CGRectMake(0,0,0,0)];

Getting the AIAnimationQeue object:

AIAnimationQueue *aQueue = [AIAnimationQueue sharedInstance];

Adding a selector-based animation:

SEL selector = @selector(animation);
id target = self;
[aQueue addAnimation:selector target:target];

Adding a block-based animation

void(^block)(void) = animation;
[aQueue addAnimation:block];

Computations are added in much the same way except instead of using the addAnimation methods you would use the addComputation methods which accept the same parameters. AIAnimationQueue also supports passing parametrized selectors with examples available in TestViewController.m.


  • AIAnimationQueue supports only selector based animations and computations in iOS 3.2 and lower
  • AIAnimationQueue supports both selector based and block based animations and computations in iOS 4.0+