UIImageView旋转,锚点为右端

时间:2013-01-02 12:35:11

标签: ios uiimageview rotation uiviewanimation

在我的应用程序中,我需要在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度之间旋转。 请运行此代码,以便您清楚地了解我的问题 任何帮助请...

先谢谢

1 个答案:

答案 0 :(得分:0)

这应该可以解决问题:

 self.needleImageView1.transform = CGAffineTransformIdentity
 //now animation

请注意,如果UIViewAnimationOptionAutoreverseno use,则为completion block