我试图使用
xcode中的简单单一视图应用程序围绕圆圈旋转图像.我在主故事板上有一个圆圈图像和一个按钮.我使用下面的代码,但圆形图像向下漂移,然后向左旋转,随着它的旋转.我不确定它缺少什么.
谢谢你的帮助.
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
解决方法
我找到了一种非常简单的方法来让我的动画工作我也想要它 –
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];
它旋转theImageView M_PI / 2.65(M_PI / 2.65是roataion数量),计数为5.