UITableViewのスクロールをiOSのApp切り替え画面みたいな感じで、慣性に違和感を感じさせずに好きな位置で止めるやり方。
MyTableViewController.swift
class MyTableViewController: UITableViewController {
override func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
let y = //targetConttentOffset.memory.y とか scrollView.frame.height とかをゴニョゴニョしてお好みの位置に
targetContentOffset.memory.y = y
}
}
これだけ。targetContentOffsetが指している値が、このまま行くと止まるはずの場所。
この値を書き換えてあげれば、慣性に違和感を感じさせずにスクロールしてくれる。
scrollViewWillEndDragging
は、ユーザが指を離したタイミングで必ず呼ばれるっぽい。
なので、scrollViewDidEndDecelerating
とか、scrollViewDidEndDragging:willDecelerate
とかでゴニョゴニョする必要はない。