0

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

但是,当我捏​​缩放时它没有任何问题。当我缩小某个级别时,图像很小,我无法放大缩小图像。之后,当我应用平移时,当我松开手指时,平移将应用整个视图并且仅应用图像。松开我的手指后,平底锅只应用图像。触摸图像平移后应用于整个视图

代码:

 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;
}
4

1 回答 1

2

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

Apple 通常建议允许至少 44x44 pts 作为可触摸区域,因此我建议您停止将图像大小调整到 88x88 以下。

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

于 2013-07-10T08:49:48.980 回答