UITableView
aが上方向にスクロールされているのか下方向にスクロールされているのかを知る方法はありますか?
16173 次
8 に答える
44
-(void) scrollViewDidScroll:(UIScrollView *)scrollView
{
CGPoint currentOffset = scrollView.contentOffset;
if (currentOffset.y > self.lastContentOffset.y)
{
// Downward
}
else
{
// Upward
}
self.lastContentOffset = currentOffset;
}
于 2012-07-18T08:25:05.063 に答える
29
-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView
withVelocity:(CGPoint)velocity
targetContentOffset:(inout CGPoint *)targetContentOffset{
if (velocity.y > 0){
NSLog(@"up");
}
if (velocity.y < 0){
NSLog(@"down");
}
}
于 2014-01-21T16:40:08.570 に答える
13
このようにできますか?
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if ([scrollView.panGestureRecognizer translationInView:scrollView].y > 0) {
// down
} else {
// up
}
}
于 2013-09-19T06:32:12.890 に答える
2
UITableView
はUIScrollView
サブクラスであるため、自分自身を として設定し、UIScrollViewDelegate
スクロール ビュー デリゲート コールバックを取得できます。
これらのデリゲート メソッドの 1 つ ( -scrollViewDidScroll:
) の引数は、スクロールしたスクロール ビューです。それをテーブル ビューと比較して、どちらがスクロールしたかを知ることができます。
申し訳ありませんが、私はあなたの質問を読み違えました。どのテーブルビューがスクロールされているか知りたいと思いました(「方法」を逃しました)。
方向を知るには、前のオフセットを変数に保持し、デルタ (current.y - previous.y) が正 (下にスクロール) か負 (上にスクロール) かを確認します。
于 2012-07-18T08:19:54.483 に答える
1
コンテンツオフセットの違いを追跡できます。古いものをメンバー/静的変数に保持し、現在のものと照合します。古い値が低い場合、スクロールは下に向けられ、その逆も同様です。
于 2012-07-18T08:18:45.020 に答える
1
override func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
if targetContentOffset.memory.y < scrollView.contentOffset.y {
//println("Going up!")
} else {
// println("Going down!")
}
}
于 2016-04-12T04:57:53.817 に答える