UITableViewController和检测触摸

时间:2010-01-30 01:39:38

标签: iphone uitableview

3 个答案:

答案 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等方法。只有UIResponderUIView一样,它的子类如UITableView。所以你试图在错误的地方接触。

你想要完成什么?是否要回复UITableViewUITableViewCell中的内容?如果是后者,您可以处理自定义单元格实现中的触摸。

答案 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]];
    ...
}