2012-08-15 74 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

相關問題