我有一个应用程序,我需要以编程方式防止夹入,同时允许夹出发生。有没有办法在捏合和捏合缩放之间消除歧义?
谢谢,
道格
你有两个选择:
(1) 使用UIScrollView
。您需要实施UIScrollViewDelegate
. 在那里,scrollViewDidZoom:(UIScrollView *)scrollView
您可以将当前的 zoomScale 值与前一个值进行比较。如果它增加,则用户正在放大。否则,用户正在缩小。然后你可以根据它做一些事情。
(2) 使用UIPinchGestureRecognizer
. 这种情况下的逻辑将大致相同(只需添加一个类似的检查以查看缩放比例是上升还是下降)。
这是一个基本代码。这可能需要一些重构来实现您需要的确切功能
// 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
}
}
}
希望这将帮助您根据您的要求处理捏事件。