在gestureRecognizerShouldBegin中捕获UIGestureRecognizer类型

时间:2012-10-24 09:38:03

标签: uitableview uigesturerecognizer

我想抓住UIGestureRecognizer的类型。 我可以这样做吗?

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
    NSLog(@"Gesture should begin");
    if ([gestureRecognizer isMemberOfClass:[UIRotationGestureRecognizer class]])
        NSLog(@"rotate");
    if ([gestureRecognizer isMemberOfClass:[UIPinchGestureRecognizer class]])
        NSLog(@"pinch");
    if ([gestureRecognizer isMemberOfClass:[UITapGestureRecognizer class]])
        NSLog(@"tap");
    if ([gestureRecognizer isMemberOfClass:[UIPanGestureRecognizer class]])
        NSLog(@"pan");
    if ([gestureRecognizer isMemberOfClass:[UILongPressGestureRecognizer class]])
        NSLog(@"long");
    if ([gestureRecognizer isMemberOfClass:[UISwipeGestureRecognizer class]])
        NSLog(@"swipe");
    return NO;
}

我在桌面视图单元格中有一个长触摸手势。 如果我按下单元格,我会收到一个日志:

-[FileObjectView gestureRecognizerShouldBegin:] [Line 45] Gesture should begin
-[FileObjectView gestureRecognizerShouldBegin:] [Line 55] long

我希望它以这种方式工作。

但有时当我滚动表格视图时,我会收到一个日志:

-[FileObjectView gestureRecognizerShouldBegin:] [Line 45] Gesture should begin

这让我觉得我不知道某种姿势。

anybode可以解释一下情况吗?

1 个答案:

答案 0 :(得分:1)

我决定以这种方式检查班级名称:

NSLog(@"%@",gestureRecognizer.class);

班级名称为:UIScrollViewPanGestureRecognizer

我在不同的iOS版本上已经多次检查过这个问题。

这件事只发生在iOS 6上。还有一个iOS 6错误?!