101010

プログラミング備忘録とともに、ポエムってます。

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

image:https://cdn-ak.f.st-hatena.com/images/fotolife/a/araemonz/20180801/20180801111254.png

最下部にスクロールするには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)
}