重新加载表视图,但不要';不要将视口移动到iOS
我有一个基于API结果更新的表视图。表格视图有一个很大的自定义单元格,几乎占据了屏幕的一半。用户可以使用自定义按钮对单元格进行排序。平均而言,我的表中有10-15个单元格,我的大问题是,当用户单击将最底部的单元格移动1点时,重新加载的数据将刷新整个表,并将视图端口移动到顶部,这意味着用户将不得不再次滚动到最后,这是一种糟糕的用户体验。是否有一种刷新表视图的方法,但在重新加载之前保持该位置,还是考虑使用自定义滚动,这将在填充表之后调用。我正在用Swift编写应用程序,API使用Alamofire处理,自定义单元格有一个单独的XIB文件,表视图在我的视图控制器中 最好保存indexPath,然后调用tableView.reloadData,然后滚动到保存的位置,如下所示重新加载表视图,但不要';不要将视口移动到iOS,ios,uitableview,Ios,Uitableview,我有一个基于API结果更新的表视图。表格视图有一个很大的自定义单元格,几乎占据了屏幕的一半。用户可以使用自定义按钮对单元格进行排序。平均而言,我的表中有10-15个单元格,我的大问题是,当用户单击将最底部的单元格移动1点时,重新加载的数据将刷新整个表,并将视图端口移动到顶部,这意味着用户将不得不再次滚动到最后,这是一种糟糕的用户体验。是否有一种刷新表视图的方法,但在重新加载之前保持该位置,还是考虑使用自定义滚动,这将在填充表之后调用。我正在用Swift编写应用程序,API使用Alamofire处
tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: .Top, animated: true)
保存
contentOffset
,然后在reloadData
let contentOffset = tableView.contentOffset
tableView.reloadData()
tableView.contentOffset = contentOffset
直到今天我才知道contentOffset属性,这就是为什么我将此标记为正确答案的原因,因为我非常喜欢修改Y并具体说明值的可能性,尽管@Das的答案也完全正确,实际上可能更有用,因为它附带了一个现成的动画。@NerminSehic注意,还有一个setContentOffset方法也带有动画标志