Swift4でUITalbeViewの最下部にスクロールしたい

swift programming

最下部にスクロールするにはscrollToRowを使うが、tableView.reloadData() 後すぐに実行すると正しくスクロールできない。 タイマーでタイミングを少しずらすことでうまくいった。

//tableViewに追加する処理をした後

tableView.reloadData()

DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
    self.tableView.scrollToRow(at: IndexPath(row: self.items.count - 1, section: 0), at: UITableViewScrollPosition.bottom, animated: true)
}