在Objective C UITableVIew如何在调用reload后保留滚动位置

时间:2015-01-25 05:50:28

标签: ios uitableview

在Objective C UITableVIew如何在调用reload后保留滚动位置

在选择单元格时,我调用了UITableView的重载功能,但重新加载后我希望滚动保持其位置(即,单元格被轻敲的位置)

3 个答案:

答案 0 :(得分:1)

您可以使用reloadRowsAtIndexPaths:withRowAnimation:而不是reloadData

答案 1 :(得分:1)

你可以这样做。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}

此外,如果您想要滚动到某个特定位置,可以使用此功能。

  [tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionNone animated:YES];

答案 2 :(得分:0)

两行,您将获得所需的结果:

 NSArray *indexPaths = tableView.indexPathsForVisibleRows;
[tableView reloadRowsAtIndexPaths:indexPathswithRowAnimation:UITableViewRowAnimationNone];'