我有一个表视图,我在表视图单元格上使用UILongPressGestureRecognizer来显示单元格上的上下文菜单,以允许用户执行一些额外的功能。一切都在iOS 5.1中运行良好,但是当我在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 :(得分:2)
在这个问题上花了1.5天后,我发现tableView收到长按事件,但是在iOS 5 / 4.3上没有tableViewCell。所以我通过向tableView添加UILongPressGuestureRecognizer然后在长按事件处理程序中然后调用tableViewCell来显示上下文菜单来解决这个问题,并且它可以工作。
答案 1 :(得分:1)
我也遇到了这个问题。我发现只有当'delegate'属性为'NULL'时,长按手势识别器才能正常工作。所以,试着删除这一行。
longPressRecognizer.delegate = self;