0

在我的应用程序中,我需要在顺时针方向旋转 0-90(度)之间的图像,反之亦然。首先,我正在创建一个图像视图

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 度之间旋转。请运行此代码,以便您可以清楚地理解我的问题任何帮助请...

提前致谢

4

1 回答 1

0

这应该可以解决问题:

 self.needleImageView1.transform = CGAffineTransformIdentity
 //now animation

请注意,如果你有UIViewAnimationOptionAutoreverse那么no usefor completion block

于 2013-01-02T12:44:42.273 回答