[英]Rotate UIImageView Gradually using a timer
我試圖使用計時器逐漸旋轉UIImageView,這段代碼旋轉它,但它似乎不是圍繞圖像中心旋轉,以及將CGAffineTransformMakeRotation
添加到我的代碼似乎停止了所有其他代碼主要的“方法
#define radians(degrees) (degrees * M_PI/180)
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.016 target:self selector:@selector(main) userInfo:nil repeats:YES];
-(void)main{
rotate++;
uiImageView.transform = CGAffineTransformMakeRotation(radians(rotate));
uiImageView.center = CGPointMake(uiImageView.center.x+1, uiImageView.center.y);
}
嘗試這個 :
開始動畫:
CABasicAnimation *rotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
rotation.fromValue = [NSNumber numberWithFloat:0];
rotation.toValue = [NSNumber numberWithFloat:(2*M_PI)];
rotation.duration = 1.0;// Speed
rotation.repeatCount = HUGE_VALF;// Repeat forever.
[imgViewCube.layer addAnimation:rotation forKey:@"Spin"];
停止動畫:
[imgViewCube.layer removeAnimationForKey:@"Spin"];
您可以慢慢旋轉指定動畫的持續時間
NSTimeInterval duration = 1.5;
[UIView animateWithDuration:duration animations:^
{
// set the final transform/freame/center here
uiImageView.transform = CGAffineTransformMakeRotation(radians(rotate));
uiImageView.center = CGPointMake(uiImageView.center.x+1, uiImageView.center.y);
} completion:^(BOOL finished)
{
NSLog(@"animation completed");
}];
你可以做這樣的事情
// this spin completes 360 degrees every 2 seconds
[UIView animateWithDuration:1.0f
delay:0.0f
options: UIViewAnimationOptionRepeat
animations: ^(void){
uiImageView.transform = CGAffineTransformRotate(uiImageView.transform, M_PI / 2);
}
completion:NULL];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.