Iphone xcode rotation animation

Im trying to rotate the image in a circle using a simple application with one view in xcode. I have a circle image on the main storyboard and button. Im using the following code, but the image of the circle shifts down to the right, and then back to the left, as its rotation. I'm not sure what is missing.

Thanks for the help.

ViewController.h

#import <UIKit/UIKit.h> @interface ViewController : UIViewController { IBOutlet UIImageView *theImageView; IBOutlet UIButton *theButton; NSTimer *theTimer; float angle; BOOL runStop; } @property (atomic, retain) IBOutlet UIImageView *theImageView; @property (atomic, retain) IBOutlet UIButton *theButton; -(IBAction)runRoulette:(id)sender; @end 

ViewController.m

 #import "ViewController.h" @interface ViewController () @end @implementation ViewController @synthesize theButton, theImageView; - (void)viewDidLoad { angle = 0; runStop = FALSE; [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } -(void)rotateRoulette { theImageView.center = CGPointMake(self.theImageView.center.x, self.theImageView.center.y); theImageView.transform=CGAffineTransformMakeRotation (angle); angle+=0.001; } -(IBAction)runRoulette:(id)sender { if(!runStop) { theTimer = [NSTimer scheduledTimerWithTimeInterval:1.0/600.0 target:self selector:@selector(rotateRoulette) userInfo:nil repeats:YES]; } else { [theTimer invalidate]; theTimer = nil; } runStop = !runStop; } @end 
+4
source share
1 answer

I found a very simple way to make my animation work the way I wanted it too -

 theImageView.center = CGPointMake(160.0, 364.0); [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:5]; //theImageView.center=CGPointMake(self.theImageView.center.x, self.theImageView.center.y); theImageView.transform = CGAffineTransformMakeRotation(M_PI/2.65); [UIView commitAnimations]; 

It rotates the ImageView value M_PI / 2.65 (M_PI / 2.65 - number of rotations) to count 5.

+2
source

All Articles