Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone Pinchgesture不适用于小图像_Iphone_Uiimageview_Uigesturerecognizer_Uipinchgesturerecognizer - Fatal编程技术网

Iphone Pinchgesture不适用于小图像

Iphone Pinchgesture不适用于小图像,iphone,uiimageview,uigesturerecognizer,uipinchgesturerecognizer,Iphone,Uiimageview,Uigesturerecognizer,Uipinchgesturerecognizer,Im使用手势识别器代理挤压、平移、旋转和长按图像。我使用UIPinchGestureRecognizer委托进行挤压 但是,当我按下zoomIn时,它没有任何问题。当我缩放到某个级别时,图像很小,我无法缩放图像。之后,当我应用平移时,当我松开手指时,平移将应用整个视图,仅应用图像。松开手指后,平底锅仅适用于图像。触摸图像后,在整个视图上平移应用 代码: 您应该修改ahandlePinch1方法,以便不会将图像的大小减小到一定程度以下。几乎可以肯定的是,它变得如此之小,以至于它无法再检测到两个不同

Im使用手势识别器代理挤压、平移、旋转和长按图像。我使用
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;
}