在我的应用程序中,我需要在0-90(度)顺时针方向旋转图像,反之亦然。为此,我创建了一个imageview
self.needleImageView = [[UIImageView alloc]initWithFrame:CGRectMake(300,155, 15,150)];
self.needleImageView.layer.anchorPoint = CGPointMake(0.5,1.0);// Shift the Needle center point to one of the end points of the needle image.
self.needleImageView.backgroundColor = [UIColor clearColor];
self.needleImageView.image = [UIImage imageNamed:@"Arrow.png"];
[self.view addSubview:self.needleImageView];
使用此代码,图像以垂直方向进入。为了获得水平方向的图像我正在应用CGAffineTransformMakeRotation(-M_PI / 2);
self.needleImageView.transform=CGAffineTransformMakeRotation(-M_PI/2);
在此之后旋转我使用以下动画代码的图像 //使用自动反转从0-90旋转,完成动画后将图像保持在原始位置我已完成编写代码
[UIView animateWithDuration: 0.8f
delay: 0.0f
options: (UIViewAnimationOptionAutoreverse)
animations: ^{
self.needleImageView.transform = CGAffineTransformRotate(self.needleImageView.transform,M_PI/2);
}
completion: ^(BOOL finished) {
self.needleImageView.transform = CGAffineTransformRotate(self.needleImageView.transform,-M_PI/2);
}];
当我运行此代码时,图像处于水平位置,一旦我点击动画按钮应用动画,图像旋转从270度-0度开始,反之亦然..动画图像定位在270度(垂直方向)
我希望图像仅在0-90度之间旋转。 请运行此代码,以便您清楚地了解我的问题 任何帮助请...
先谢谢
答案 0 :(得分:0)
这应该可以解决问题:
self.needleImageView1.transform = CGAffineTransformIdentity
//now animation
请注意,如果UIViewAnimationOptionAutoreverse
有no use
,则为completion block
。