UITableView indexPathForSelectedRow在iOS中始终返回0

时间:2013-07-23 18:12:29

标签: ios cocoa-touch uitableview

我需要在iOS中获得UITableView的{​​{1}}索引。

首先我添加了UILongPressGestureRecognizer并使用以下代码检索所选行的索引路径。

UILongPressGestureRecognizer

当我点击- (void)handleLongPress : (UILongPressGestureRecognizer *)ges { NSIndexPath *indexPath = [self.tblMainTableView indexPathForSelectedRow]; NSLog(@"%i",indexPath.row); } 的第三行时,它只会返回UITableView,并且无论何时点击tableView,都会返回0

如何使用0获取索引表格视图?

感谢您的任何建议和帮助。

2 个答案:

答案 0 :(得分:3)

-(void)handleLongPress:(UILongPressGestureRecognizer *)ges
{
    CGPoint touch = [ges locationInView:self.tblMainTableView];

    NSIndexPath *indexPath = [self.tblMainTableView indexPathForRowAtPoint:touch];

}

使用tableView上的触摸点通过indexPathForRowAtPoint方法

访问该行

答案 1 :(得分:1)

我怀疑你的行没有被选中,因为你没有“触摸”直到长按 - 它可能会起作用,如果你点击它然后按下,但这会失败的目的。您可以使用它来获得长按的重点:

CGPoint pressPoint = [ges locationInView];

然后用这个来获取单元格:

indexPath path = [self.tblMainTableView indexPathForRowAtPoint:pressPoint];