滚动时选择行

时间:2014-07-01 01:08:23

标签: ios uitableview uiscrollview didselectrowatindexpath

我有一个程序,可以在不同的时间选择行,完全正常。但是,当我尝试向下滚动并尝试选择另一行时,#34;在视图之外"虽然我的程序已经在某个地方选择了一行,但它不允许我选择我点击的那一行。仅当我选择的行位于当前显示的单元格或显示视图中时,它才有效。我启用了多项选择,但仍然无法正常工作。

- 我还发现,当选择程序已选择行的视图外的行时,不会调用didSelectRowAtIndex

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。 didSelectRowAtIndex未被调用,因为我的tableView的滚动位置设置为UITableViewScrollPositionTop,这不允许我在视图外选择另一行。我所做的只是将其更改为UITableViewScrollPositionNone并将scrollToRowAtIndexPath添加到滚动位置为无,将允许最小滚动,并在底部显示所选行。

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:*rows inSection:0]; // set to whatever you want to be selected first
[tableview selectRowAtIndexPath:indexPath animated:NO  scrollPosition:UITableViewScrollPositionNone];
[tableview scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionNone animated:NO];
}