tags:

views:

54

answers:

1

How do you rotate a UIImage 360˚ without open GL ES

+1  A: 

Presumably you mean animate rotating a UIImage around a full 360°? In my experience, the way to accomplish a full circle rotation is to chain multiple animations together:

- (IBAction)rotate:(id)sender
{
   [UIView beginAnimations:@"step1" context:NULL]; {
      [UIView setAnimationDuration:1.0];
      [UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
      [UIView setAnimationDelegate:self];
     [imageView.transform = CGAffineTransformMakeRotation(120 * M_PI / 180);
   } [UIView commitAnimations];
}

- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context
{
   if ([animationID isEqualToString:@"step1"]) {
      [UIView beginAnimations:@"step2" context:NULL]; {
         [UIView setAnimationDuration:1.0];
         [UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
         [UIView setAnimationDelegate:self];
         imageView.transform = CGAffineTransformMakeRotation(240 * M_PI / 180);
      } [UIView commitAnimations];
   }
   else if ([animationID isEqualToString:@"step2"]) {
      [UIView beginAnimations:@"step3" context:NULL]; {
         [UIView setAnimationDuration:1.0];
         [UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
         [UIView setAnimationDelegate:self];
         imageView.transform = CGAffineTransformMakeRotation(0);
      } [UIView commitAnimations];
   }
}

I've left the easeIn/easeOut curve (instead of linear) in place, so you can see the individual animations.

randallmeadows