我使用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;
}
答案 0 :(得分:2)
您应该修改ahandlePinch1
方法,这样就不会将图像的大小减小到一定数量以下。它几乎肯定变得如此之小,以至于它再也无法检测到两个不同的触摸(这是捏合手势所需的)。
Apple通常建议允许至少44x44分作为可触摸区域,因此我建议您停止将图像调整为低于88x88。
或者,如果您确实需要的图像小于那个,那么您应该将手势识别器添加到不同的视图(可能是超级视图),而不是图像本身。