1

我有一个 UIImageView 的子类,其中包含一些我用来对其自身应用变换的手势识别器。我在平移或缩放方面没有问题,但是当设备本身旋转时,旋转的变换会导致问题。基本上每次设备旋转时都会产生缩放图像的效果......

我想这是有道理的,一切的旋转可能会导致旋转变换出现问题,但有没有人知道这种行为的任何方法?最好是可以在 UIImageView 子类中实现的东西?我需要其他同级视图来自动调整大小,因此我无法在父视图中禁用“自动调整子视图”。

如果有帮助,这是负责创建旋转变换的代码:

- (void)setUpRotation
{
    UIRotationGestureRecognizer *newRecognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(handleRotationGesture)];
    newRecognizer.delegate = self;
    self.rotationRecognizer = newRecognizer;
    [self addGestureRecognizer:self.rotationRecognizer];
    [newRecognizer release];
    self.userInteractionEnabled = YES;
}

- (void)handleRotationGesture
{
    // Initial state
    if(self.rotationRecognizer.state == UIGestureRecognizerStateEnded)
    {        
        lastRotation = 0.0;
        return;
    }

    CGFloat rotation = 0.0 - (lastRotation - self.rotationRecognizer.rotation);    
    CGAffineTransform currentTransform = self.transform;
    self.transform  = CGAffineTransformRotate(currentTransform,rotation);  

    lastRotation = self.rotationRecognizer.rotation; 
}

这是在 iOS 5.0 上。

4

0 回答 0