我有一个基于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)