UIScrollView的。如何消除捏合和缩小缩放之间的歧义?

时间:2013-07-03 19:09:38

标签: ios uiscrollview

我有一个应用程序,我需要以编程方式防止捏入,同时允许捏合发生。有没有办法消除捏合和缩小缩放之间的歧义?

谢谢,
道格

2 个答案:

答案 0 :(得分:1)

您有两种选择:

(1)使用UIScrollView。您需要实施UIScrollViewDelegate。在scrollViewDidZoom:(UIScrollView *)scrollView中,您可以将当前的zoomScale值与前一个值进行比较。如果它增加,则用户正在放大。否则,用户正在缩小。然后你可以根据它做点什么。

(2)使用UIPinchGestureRecognizer。在这种情况下的逻辑将大致相同(只需添加一个类似的检查,看看捏缩比例是上升还是下降)。

答案 1 :(得分:1)

这是一个基本代码。这可能需要一些重构来实现您需要的确切功能

// Disable existing recognizer

for (UIGestureRecognizer* recognizer in [_scrollView gestureRecognizers]) {


    if ([recognizer isKindOfClass:[UIPinchGestureRecognizer class]]) {
        [recognizer setEnabled:NO];
    }
}

// Add our own

UIPinchGestureRecognizer* pinchRecognizer = 
  [[UIPinchGestureRecognizer alloc] initWithTarget:self 
                                            action:@selector(pinch:)];
[_scrollView addGestureRecognizer:pinchRecognizer];
[pinchRecognizer release];

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

   if (lastScale < [recognizer scale]) {

   // pinch - out // write your own code here
   }
   else (lastScale > [recognizer scale]) {

   // pinch - in // write your own code here
   }
}

}

希望这可以帮助您根据自己的要求处理捏事件。