Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.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
在swift 2.3中添加/删除数据时,tableview会滚动_Swift_Uitableview_Firebase - Fatal编程技术网

在swift 2.3中添加/删除数据时,tableview会滚动

在swift 2.3中添加/删除数据时,tableview会滚动,swift,uitableview,firebase,Swift,Uitableview,Firebase,为了更好地理解问题,请重新措辞: 我有一个UITableview,当有任何活动时,我正在从Firebase重新加载数据。我用 tableView.estimatedRowHeight = 330 tableView.rowHeight = UITableViewAutomaticDimension 因此,每当我的tableview源更新时——一篇新文章被添加或删除,我的UI tableview就会向上或向下滚动一个单元格以适应这个新活动。当tableview更新时,如何确保我的单元格保持在相同

为了更好地理解问题,请重新措辞: 我有一个UITableview,当有任何活动时,我正在从Firebase重新加载数据。我用

tableView.estimatedRowHeight = 330
tableView.rowHeight = UITableViewAutomaticDimension
因此,每当我的tableview源更新时——一篇新文章被添加或删除,我的UI tableview就会向上或向下滚动一个单元格以适应这个新活动。当tableview更新时,如何确保我的单元格保持在相同的位置

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
   return UITableViewAutomaticDimension
}

func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
   return 1000
}

您的应用程序可能会向Firebase中的某个节点添加观察者,当该节点中出现事件(添加、编辑或删除)时,应用程序会响应该事件。最有可能的是,在其中一个观察事件期间刷新了tableView。但是,由于您的问题中没有代码,因此无法判断。请看是的,我确实下载了数据并使用dispatch_async(dispatch_get_main_queue(),{self.tableview.reloadData()})更新了我的tableview。您不需要dispatch_async,如果您的问题中没有代码,很难给出进一步的建议。啊。看我对这个问题的回答,因为它应该给你们提供方向。我试过了,但它对我来说并不起作用。事实上,这一行结束时p在加载时使应用程序崩溃,因为它为nil:myTableView.ScrollToRowatineXpath(savedIndex,atScrollPosition:.Top,动画:false)