答案 0 :(得分:1)
TableViews有一种“触摸”委托方法。为tableView委托实现此方法:
// What happens when a row is touched
- (void)tableView:(UITableView *)table didSelectRowAtIndexPath:(NSIndexPath *)indexPath {}
你不应该让它们按下3秒......只需使用标准。
答案 1 :(得分:0)
假设代码来自您的UITableViewController
子类...... UIViewController
,则不会收到touchesBegan:withEvent
等方法。只有UIResponder
像UIView
一样,它的子类如UITableView
。所以你试图在错误的地方接触。
你想要完成什么?是否要回复UITableView
或UITableViewCell
中的内容?如果是后者,您可以处理自定义单元格实现中的触摸。
答案 2 :(得分:0)
现在使用UILongPressGestureRecognizer很容易实现:
-(void)viewDidLoad{
[super viewDidLoad];
UILongPressGestureRecognizer *longPressRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressHandlerMethod:)];
[self.tableView addGestureRecognizer:longPressRecognizer];
}
-(void)longPressHandlerMethod:(UIGestureRecognizer *)gestureRecognizer{
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:[gestureRecognizer locationInView:self.tableView]];
...
}