[iOS SDK] UITableView で、上下のスクロール方向を感知する
UITableView でスクロール方向が上か下かで処理を分けたプログラムを書きましたので、メモします。
UITableView と書きましたが、その親クラスである UIScrollView でも、スクロール方向を感知できます。
UITableView のスクロール方向を感知する
スクロール開始位置を持たせる scrollBeginingPoint というのをグローバル変数として用意します。
@interface MasterViewController : UITableViewController {
CGPoint scrollBeginingPoint;
}
そして、UIScrollViewDelegate のメソッドに以下のように記述します。
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
scrollBeginingPoint = [scrollView contentOffset];
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGPoint currentPoint = [scrollView contentOffset];
if(scrollBeginingPoint.y > currentPoint.y)
NSLog(@"上方向にスクロールさせています.");
}
scrollViewWillBeginDragging で、スクロール開始位置を保存。
scrollViewDidScroll で、現在のスクロール位置とスクロール開始位置を比較して、処理を行わせます。