Xcode图像旋转toValue和fromValue
发布时间:2020-12-14 17:11:49 所属栏目:百科 来源:网络整理
导读:我想按下按钮时将图像旋转190度.这有效,但是当我再次按下按钮时,动画需要从最后结束的地方开始,而不是从0开始.所以每次按下按钮,动画都需要转动190度. 因为我的fromValue设置为0,所以每次都从0开始. 有人知道我如何使我的图像结束的fromValue开始.我的代码在
我想按下按钮时将图像旋转190度.这有效,但是当我再次按下按钮时,动画需要从最后结束的地方开始,而不是从0开始.所以每次按下按钮,动画都需要转动190度.
因为我的fromValue设置为0,所以每次都从0开始. 有人知道我如何使我的图像结束的fromValue开始.我的代码在这里. - (IBAction)buttonPressed { CABasicAnimation *imageRotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; imageRotation.fromValue = [NSNumber numberWithFloat:0]; imageRotation.toValue = [NSNumber numberWithFloat:((190*M_PI)/ -180)]; imageRotation.duration = 1.5; imageRotation.repeatCount = 1; imageRotation.removedOnCompletion = NO; imageRotation.autoreverses=NO; imageRotation.fillMode = kCAFillModeForwards; [image.layer addAnimation:imageRotation forKey:@"imageRotation"]; } 解决方法
谢谢你的回答,但这是我如何做到的.希望人们可以使用这个:D
我的.h文件看起来像这样: #import <UIKit/UIKit.h> #import <QuartzCore/QuartzCore.h> @interface testViewController : UIViewController { IBOutlet UIImageView *image; NSObject *lastValue; } - (IBAction)buttonPressed; @property(nonatomic,retain) IBOutlet NSObject *lastValue; @end 我的.m文件如下所示: @synthesize lastValue; - (void)viewAnimation0 { CABasicAnimation *imageRotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; imageRotation.fromValue = lastValue; imageRotation.toValue = [NSNumber numberWithFloat:((30*M_PI)/ -180)]; lastValue = imageRotation.toValue; imageRotation.duration = 1.5; imageRotation.repeatCount = 1; imageRotation.removedOnCompletion = NO; imageRotation.autoreverses=NO; imageRotation.fillMode = kCAFillModeForwards; [image.layer addAnimation:imageRotation forKey:@"imageRotation"]; } - (void)viewAnimation1 { CABasicAnimation *imageRotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; imageRotation.fromValue = lastValue; imageRotation.toValue = [NSNumber numberWithFloat:((60*M_PI)/ -180)]; lastValue = imageRotation.toValue; imageRotation.duration = 1.5; imageRotation.repeatCount = 1; imageRotation.removedOnCompletion = NO; imageRotation.autoreverses=NO; imageRotation.fillMode = kCAFillModeForwards; [image.layer addAnimation:imageRotation forKey:@"imageRotation"]; } - (void)viewAnimation2 { CABasicAnimation *imageRotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; imageRotation.fromValue = lastValue; imageRotation.toValue = [NSNumber numberWithFloat:((90*M_PI)/ -180)]; lastValue = imageRotation.toValue; imageRotation.duration = 1.5; imageRotation.repeatCount = 1; imageRotation.removedOnCompletion = NO; imageRotation.autoreverses=NO; imageRotation.fillMode = kCAFillModeForwards; [image.layer addAnimation:imageRotation forKey:@"imageRotation"]; } - (IBAction)buttonPressed { static int counter = 0; switch (++counter) { case 1: [self viewAnimation1]; break; case 2: [self viewAnimation2]; break; default: [self viewAnimation0]; counter = 0; break; } // animateButton.enabled = NO; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |