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

时间:2015-09-29 23:36:49

标签: ios uitableview

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

2 个答案:

答案 0 :(得分:5)

保存contentOffset,然后在reloadData

之后将其恢复
let contentOffset = tableView.contentOffset

tableView.reloadData()

tableView.contentOffset = contentOffset

答案 1 :(得分:2)

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

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