重新加载表视图,但不移动视口 iOS



我有一个基于API结果更新的表视图。表格视图有一个很大的自定义单元格,几乎占据了屏幕的一半。用户可以使用自定义按钮对单元格进行排序。平均而言,我将在表格中有10-15个单元格,我的大问题是,当用户点击将最底部的单元格移动1点时,reloadData将刷新整个表格,并将视图移动到顶部,这意味着用户将不得不再次滚动到最后,这是糟糕的用户体验。是否有一种方法来刷新表视图,但在重新加载之前保持位置,或者考虑使用自定义滚动是有用的,这将在表填充后调用。我在Swift中编写应用程序,api是使用Alamofire处理的,自定义单元格有一个单独的XIB文件,表视图在我的视图控制器中。

保存contentOffset,然后在您完成reloadData后恢复它

let contentOffset = tableView.contentOffset
tableView.reloadData()
tableView.contentOffset = contentOffset

最好保存indexPath,然后调用tableView。reloadData,然后滚动到保存的位置,如下所示

tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: .Top, animated: true)

最新更新