UITableViewScroll in ViewWillAppear



我正在尝试在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)]会做你想做的事。

最新更新