Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are block-based animation methods in iPhone OS 4.0?

I am trying to implement a game using the iPhone OS 4.0 (iOS4?) SDK. In the previous versions of the SDK, I've been using the [UIView beginAnimations:context:] and [UIView commitAnimations] to create some animations. However, when I look at the documentation of the functions in 4.0, I see this comment.

Use of this method is discouraged in iPhone OS 4.0 and later. You should use the block-based animation methods instead.

You can find it here: http://developer.apple.com/iphone/library/documentation/uikit/reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/clm/UIView/commitAnimations

My question is, what are block-based animations in iPhone OS 4.0? I though that the beginAnimations:context: and commitAnimations functions were used to create animation blocks..

like image 310
kkrizka Avatar asked Jun 27 '10 08:06

kkrizka


2 Answers

I have posted an example in my blog:

    CGPoint originalCenter = icon.center;     [UIView animateWithDuration:2.0             animations:^{                  CGPoint center = icon.center;                 center.y += 60;                 icon.center = center;             }              completion:^(BOOL finished){                  [UIView animateWithDuration:2.0                         animations:^{                              icon.center = originalCenter;                         }                          completion:^(BOOL finished){                             ;                         }];              }]; 

The above code will animate a UIImageView* (icon) in a 2-second animation. Once completed, another animation will move the icon back to it’s original position.

like image 103
ohho Avatar answered Oct 07 '22 19:10

ohho


If you follow that link and scroll up a bit, you will see animate methods new to ios4.

animateWithDuration:animations: animateWithDuration:animations:completion: animateWithDuration:delay:options:animations:completion: 

There are also some related transition methods. For each of these, the animations argument is a block object:

animations
A block object containing the changes to commit to the views. This is where you programmatically change any animatable properties of the views in your view hierarchy. This block takes no parameters and has no return value. This parameter must not be NULL.

Block objects are part of Concurrent Programming

like image 42
drawnonward Avatar answered Oct 07 '22 19:10

drawnonward