Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重新加载表视图,但不要';不要将视口移动到iOS_Ios_Uitableview - Fatal编程技术网

重新加载表视图,但不要';不要将视口移动到iOS

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

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

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

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

保存
contentOffset
,然后在
reloadData

let contentOffset = tableView.contentOffset

tableView.reloadData()

tableView.contentOffset = contentOffset

直到今天我才知道contentOffset属性,这就是为什么我将此标记为正确答案的原因,因为我非常喜欢修改Y并具体说明值的可能性,尽管@Das的答案也完全正确,实际上可能更有用,因为它附带了一个现成的动画。@NerminSehic注意,还有一个setContentOffset方法也带有动画标志