Ios 捏和轻敲手势don';我不能正常工作

Ios 捏和轻敲手势don';我不能正常工作,ios,objective-c,uigesturerecognizer,Ios,Objective C,Uigesturerecognizer,我有一个进入ViewController的ImageView,我想用收缩手势放大或缩小。另外,我希望在用户双击图像时获得初始视图 如果我只使用“捏”手势,所有动作都能正常工作,我可以放大,直到达到最大缩放,也可以缩小,直到达到最小缩放。右结果如下图所示 尽管如此,如果我双击ImageView,ImageView将获得其初始格式(图1),但无法识别最小缩放的实现,如果我继续使用收缩手势缩小,ImageView将继续缩小,我将获得此结果(图2): 以下是我处理事件的方法: @interface Im

我有一个进入ViewController的ImageView,我想用收缩手势放大或缩小。另外,我希望在用户双击图像时获得初始视图

如果我只使用“捏”手势,所有动作都能正常工作,我可以放大,直到达到最大缩放,也可以缩小,直到达到最小缩放。右结果如下图所示

尽管如此,如果我双击ImageView,ImageView将获得其初始格式(图1),但无法识别最小缩放的实现,如果我继续使用收缩手势缩小,ImageView将继续缩小,我将获得此结果(图2):

以下是我处理事件的方法:

@interface ImageGalleryViewController (){


NSString *productName;
CGFloat previousScale;
CGFloat previousRotation;
CGFloat beginX;
CGFloat beginY;

CGFloat scale;
//CGFloat __previousScale;
}

- (void)viewDidLoad{
[super viewDidLoad];
// Do any additional setup after loading the view.

   scale=1.0;

   UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer alloc]       initWithTarget:self action:@selector(scaleImage:)];
   [self.view addGestureRecognizer:pinchGesture];

   UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(resetImage:)];
   tapGesture.numberOfTapsRequired=2;
   [self.view addGestureRecognizer:tapGesture];


}

 - (void)resetImage:(UITapGestureRecognizer *)recognizer{
     [UIView animateWithDuration:0.3 animations:^() {

     self.view.transform = CGAffineTransformIdentity;

     }];
     self.bigImage.transform = CGAffineTransformIdentity;
     [self.bigImage setCenter: CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2+32)];
     [UIView commitAnimations];
 }

- (void)scaleImage:(UIPinchGestureRecognizer *)recognizer{

     NSLog(@"Scale: %f", [recognizer scale]);
     if ([recognizer state] == UIGestureRecognizerStateBegan) {
        previousScale = scale;
     }

     CGFloat currentScale = MAX(MIN([recognizer scale] * scale, 10), 1);
     CGFloat scaleStep = currentScale / previousScale;
     [self.view setTransform: CGAffineTransformScale(self.view.transform, scaleStep, scaleStep)];

    previousScale = currentScale;

    if ([recognizer state] == UIGestureRecognizerStateEnded ||
        [recognizer state] == UIGestureRecognizerStateCancelled ||
        [recognizer state] == UIGestureRecognizerStateFailed) {
    // Gesture can fail (or cancelled?) when the notification and the object is dragged simultaneously
        scale = currentScale;
        NSLog(@"Final scale: %f", scale);
    }
}

因此,如果初始右视图(第一幅图像)已实现,我如何停止缩小?

我必须将变量比例重置为1.0,以重置图像方法。所以现在它工作正常了