willSelectRowAtIndexPath,didSelectRowAtIndexPath在使用touches开始方法和执行选择器时没有在iphone中调用

时间:2011-05-16 10:06:03

标签: iphone

我正在开发一个应用程序,其中我使用的一个屏幕有tableview,它是tableview控制器。我已经在tableview控制器类中编写了自定义touchesbegan,touchesmoved,touchesended方法,当用户按下任何单元格touchesbegan方法正在调用并使用此检测长按我所做的是

[self performSelector:@selector(longTap) withObject:nil afterDelay:1.0];

如果用户在1秒之前删除了他的手指,则touchesmovedtouchesended方法取消performselector

现在发生的事情是当我按下&保持1分钟longTap方法正在调用,willSelectRowAtIndexPathdidselectRowAtIndexPath未调用。但我需要在对longTap方法执行任何操作之前获取indexpath.row值 任何人都可以帮我解决这个问题。请分享您宝贵的建议。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您应该考虑使用像UILongPressGestureRecognizer这样的手势识别器。摆弄触摸事件本身很难并且容易出错。

很容易打破UIKit类依赖于功能的事件流。手势识别器是用于连接触摸事件流的公共API,简单易用,不会破坏UIKit功能。