-1

我很难修复这段代码。

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 度。我要补充什么?

4

2 回答 2

1

它是一个点击识别器,因此每当您点击(在您的情况下双击)特定视图时,都会调用“点击:”方法。

因此,在 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];
于 2012-07-17T14:47:41.967 回答
1

请使用UIImageView该类,正确设置该类的image属性,将 添加UIImageView到您的 any UIViewController,然后您有机会UIImageView使用以下方法旋转:

_imageView.transform = CGAffineTransformMakeRotation(_angle);

(请不要忘记 _angle 必须以弧度表示)

制作其余代码(从哪里以及何时获取参数_angle)仍然需要您。

于 2012-07-17T14:48:16.007 回答