我正在尝试在viewWillAppear中滚动表格以显示特定的单元格,但它不起作用,当我在ViewDidAppear中以延迟2秒编写相同的代码时,它正在工作,但用户看到滚动。我不希望用户看到这一点。如何在 ViewWillAppear.中滚动表格。使用以下代码。
var rect = self.messageTableView.rectForRow(at: indPath)
self.messageTableView.scrollRectToVisible(rect, animated: false)
检查你的索引路径是否为零。 尝试在主线程上编写代码。
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
//your code
}
查看演示项目。
您的错误可能与UITableView数据源更改有关。
注意 .reloadData((。滚动前重新加载调用。
演示项目
您可以在 viewDidSeem 方法中使用您的代码,该方法是视图生命周期的最后一种方法。它将在那里工作。试试吧。
如果你有 IndexPath,那么你也可以使用以下方法——
open func scrollToRow(at indexPath: IndexPath, at scrollPosition: UITableViewScrollPosition, animated: Bool)
我相信打电话给[table setContentOffset:CGPointMake(0, CGFLOAT_MAX)]
会做你想做的事。