UITableView删除行而不滚动

时间:2013-04-13 00:15:35

标签: iphone ios objective-c uitableview nsfetchedresultscontroller

我正在构建一个看不见的图片image.seen = 0

的Feed

我有NSFetchedResultsControllerUITableViewController捆绑在一起。

我在image.seen = 1标记tableView:didEndDisplayingCell:forRowAtIndexPath

当我的用户滚动到包含image2的row2时,将更新image1并删除row1。

case NSFetchedResultsChangeDelete:

    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
                         withRowAnimation:UITableViewRowAnimationFade];

    break;

但是,当您删除row1时,UITableView将记住您当前处于从顶部滚动位置1并在发生删除时为您保持滚动位置。

因此,您将滚动到row3。 row2现在不在视图中并被删除。删除完成后,表格会滚动到第4行....

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我们可以删除canEditRowAtIndexPath tableview委托中的行,如果我们想要从外部删除行,如果我们从数组中加载从数组中的特定索引中删除,则根据tableView的行号重新加载数据。