如何旋转图像?

时间:2012-07-17 14:40:16

标签: objective-c ios5

我很难修复此代码。

UIGestureRecognizer *tapGest = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)];
tapIt = (UITapGestureRecognizer *)tapGest;
[tapIt setNumberOfTapsRequired:2];
[tapIt setNumberOfTouchesRequired:1];
tapIt.delegate = self;
[pc1 addGestureRecognizer:tapIt];

我想将它(图像)旋转到另一个角度,例如0度,90度,180度,360度。 我需要添加什么?

2 个答案:

答案 0 :(得分:1)

这是一个点击识别器,因此只要您点击(在您的情况下双击)特定视图,就会调用“tapped:”方法。

因此,在tapped:方法中,您将通过应用旋转变换来更改视图的旋转,如下所示:

- (void)tapped:(UIGestureRecognizer *)gesture {
    // Rotate the view that was tapped to 90 degrees (pi/4)
    UIView *tappedView = [gesture view];
    [tappedView setTransform:CGAffineTransformMakeRotation(M_PI_4)];
}

要将视图旋转到另一个角度,您可以更改变换的角度参数。


如果您希望视图每次点击时添加90度,您可以通过旋转视图的现有变换然后再次设置它来执行此操作,如下所示:

CGAffineTransform newTransform = CGAffineTransformRotate([tappedView transform], M_PI_4);
[tappedView setTransform:newTransform];

答案 1 :(得分:1)

请使用UIImageView课程,正确设置此课程的image属性,将UIImageView添加到任意UIViewController,然后使用以下方法旋转 UIImageView的机会:

_imageView.transform = CGAffineTransformMakeRotation(_angle);

(请不要忘记 _angle 必须是弧度的)

使代码的其余部分(从何处以及何时获得参数_angle)仍然需要你。