【Swift3】UITableViewで一番下までスクロールしたことを検知する


UITableViewで一番下までスクロールしたら次の20件を表示する、というようなことを実現する方法。

UITableViewはUIScrollViewを継承しているので、scrollViewDidScrollメソッドを使って、
一番下までスクロールしたことを検知します。

ちなみにscrollViewDidScrollメソッドはスクロールする度に呼ばれるので、一番下までスクロールした時のみ実行されるようif文で制御する必要があります。

コード


func scrollViewDidScroll(_ scrollView: UIScrollView) {

    if tableView.contentOffset.y + tableView.frame.size.height > tableView.contentSize.height && tableView.isDragging {
        print("一番下に来た時の処理")
    }
}

※tableView.isDraggingがないと画面遷移するときも呼び出されてしまうので注意が必要です。