2012-08-15 75 views
1

我有一个表视图,并且我在表格视图单元格上使用UILongPressGestureRecognizer以在单元格上显示上下文菜单,以允许用户执行一些额外的功能。在iOS 5.1中一切都很好,但是当我在iOS 5和4.3中测试时,事件并未被解雇。UITableViewCell上的UILongPressGestureRecognizer在iOS 5和4.3中不起作用

有谁知道如何解决这个问题请帮助我,在此先感谢。

下面是我的代码:

在tableViewCell.h

:添加UIGestureRecognizerDelegate

在tableViewCell.m

UILongPressGestureRecognizer *longPressRecognizer = [[UILongPressGestureRecognizer alloc] 
                initWithTarget:self action:@selector(handleLongPress:)]; 
longPressRecognizer.minimumPressDuration = 1.5; 
longPressRecognizer.numberOfTouchesRequired = 1; 
longPressRecognizer.numberOfTapsRequired = 0; 
longPressRecognizer.delegate = self; 

[self addGestureRecognizer:longPressRecognizer]; 
[longPressRecognizer release]; 

//方法来处理事件

- (void)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer 
{  
    if (gestureRecognizer.state == UIGestureRecognizerStateBegan) 
    { 
     // Do something. 
    } 
} 
+0

你可以显示事件处理程序方法和添加识别器的代码吗? – Anna 2012-08-15 17:16:51

+0

嗨,安娜,我在我的问题中添加了代码。 – 2012-08-16 01:36:55

+0

看起来很好。在5/4.3上运行时,确保添加识别器的代码实际上已被调用。这个问题可能在代码的其他部分。 – Anna 2012-08-16 04:04:53

回答

2

时光后在这个问题上1.5天,我发现不知何故tableView接收es长按事件,但tableViewCell不在iOS 5/4.3上。所以我通过在tableView中添加UILongPressGuestureRecognizer来解决这个问题,然后在长按事件处理程序中调用tableViewCell来显示上下文菜单,并且它工作正常。

1

我也遇到过这个问题。我发现长按手势识别器只有在'委托'属性为'NULL'时才能正常工作。所以试着删除这一行。

longPressRecognizer.delegate = self; 
+0

这应该是正确的答案,在iOS5中为我工作出色。 – 2013-08-15 06:12:35

相关问题