Iphone Pinchgesture不适用于小图像
Im使用手势识别器代理挤压、平移、旋转和长按图像。我使用Iphone Pinchgesture不适用于小图像,iphone,uiimageview,uigesturerecognizer,uipinchgesturerecognizer,Iphone,Uiimageview,Uigesturerecognizer,Uipinchgesturerecognizer,Im使用手势识别器代理挤压、平移、旋转和长按图像。我使用UIPinchGestureRecognizer委托进行挤压 但是,当我按下zoomIn时,它没有任何问题。当我缩放到某个级别时,图像很小,我无法缩放图像。之后,当我应用平移时,当我松开手指时,平移将应用整个视图,仅应用图像。松开手指后,平底锅仅适用于图像。触摸图像后,在整个视图上平移应用 代码: 您应该修改ahandlePinch1方法,以便不会将图像的大小减小到一定程度以下。几乎可以肯定的是,它变得如此之小,以至于它无法再检测到两个不同
UIPinchGestureRecognizer
委托进行挤压
但是,当我按下zoomIn时,它没有任何问题。当我缩放到某个级别时,图像很小,我无法缩放图像。之后,当我应用平移时,当我松开手指时,平移将应用整个视图,仅应用图像。松开手指后,平底锅仅适用于图像。触摸图像后,在整个视图上平移应用
代码:
您应该修改
ahandlePinch1
方法,以便不会将图像的大小减小到一定程度以下。几乎可以肯定的是,它变得如此之小,以至于它无法再检测到两个不同的触摸(这是捏手势所必需的)
苹果通常建议允许至少44x44点作为可触摸区域,因此我建议您停止将图像大小调整到88x88以下
或者,如果您确实需要图像小于该值,则应将手势识别器添加到不同的视图(可能是superview),而不是图像本身 …只需添加一个条件语句,如果视图大小小于888 x8,则该语句不应用转换。此代码是否正确?如果([Recognitor scale]>2)[Recognitor view].transform=CGAffineTransformScale([[Recognitor view]transform],[Recognitor scale],
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;
}