Iphone:UITableView如何检测该行被选中

时间:2012-04-23 15:45:17

标签: iphone ios cocoa-touch uitableview uikit

我有一个UITableView,我按了一行,但是没有释放手指,所以didSelectRowAtIndexPath还没有被调用,对吗?

  1. 如何检测我点击了哪一行?用哪种方法?
  2. 如何检测我点击了表格视图?有rowIsPressed之类的方法吗?还是onTableViewTouchDown

3 个答案:

答案 0 :(得分:2)

至少有两种选择:

1)您可以继承UITableViewCell,而不是使用默认uiview中的触摸处理。 (如touchesBegan:等)/或添加自定义uiview作为tablecell的contentView。

2)为每个tablecell添加一个手势识别器。

要找出您所在的行,您可以在cellForRow:atIndexPath:

中为每一行指定一个标记(而不是指该行)

答案 1 :(得分:0)

试试这个

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath         *)indexPath

答案 2 :(得分:0)

在抬起手指之前没有这样的方法来检测所选状态...我猜你应该覆盖UITableView类并为它添加一个UIGestureRecognizer。 关于你的第二个问题,我想你正在谈论这个表视图委托方法:

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

但是还有另一种方法可以为您提供当前选定的行。这是它(直接来自表视图类):

- (NSIndexPath *)indexPathForSelectedRow

希望有所帮助!