Pinchgesture不适用于小图像

时间:2013-07-10 06:37:53

标签: iphone uiimageview uigesturerecognizer uipinchgesturerecognizer

我使用GestureRecognizer委托进行捏合,平移,旋转,长按图像。我使用UIPinchGestureRecognizer委托进行捏合。

但是,当我捏​​缩放时,它没有任何问题。当我zoomOut特定级别的图像很小,我不能ZoomIn捏图像。之后,当我应用平移时,平移正在应用整个视图,只有图像,而我释放我的手指。释放我的手指后,平底锅仅应用图像。触摸后,图像平移应用于整个视图

代码:

 UIPinchGestureRecognizer *pinchGesture1 = [[UIPinchGestureRecognizer alloc]  initWithTarget:self action:@selector(ahandlePinch1:)];

 [myImageView addGestureRecognizer:pinchGesture1];

-(void)ahandlePinch1:(UIPinchGestureRecognizer*)sender {
    mCurrentScale += [sender scale] - mLastScale;
    mLastScale = [sender scale];

    if (sender.state == UIGestureRecognizerStateEnded)
    {
        mLastScale = 1.0;
    }

    CGAffineTransform currentTransform = CGAffineTransformIdentity;
    CGAffineTransform newTransform = CGAffineTransformScale(currentTransform, mCurrentScale, mCurrentScale);
    myImageView.transform = newTransform;
}

1 个答案:

答案 0 :(得分:2)

您应该修改ahandlePinch1方法,这样就不会将图像的大小减小到一定数量以下。它几乎肯定变得如此之小,以至于它再也无法检测到两个不同的触摸(这是捏合手势所需的)。

Apple通常建议允许至少44x44分作为可触摸区域,因此我建议您停止将图像调整为低于88x88。

或者,如果您确实需要的图像小于那个,那么您应该将手势识别器添加到不同的视图(可能是超级视图),而不是图像本身。