0

私はscrollViewを持っています。典型的なtableViewセル。私はviewDidScrollでたくさんのことをしました。

viewDidScrollは2つのケースで呼び出されます。

  1. ユーザースクロール
  2. ユーザーがスクロールを停止した場合でも、勢いやバウンドなどにより、scrollviewはスクロールします。

では、ユーザーがまだscrollViewに触れているかどうかをどうやって知ることができますか?

4

2 に答える 2

3

UIScrollViewスクロールビューにタッチなどがある間、という名前のBOOLプロパティtrackingがあります。私のテストでは、ビューが減速している(そしてそのデリゲートに送信している)場合でも、タッチが終了するとすぐに設定されます。これはまさにあなたが求めているもののようです。YESNONOscrollViewDidScroll:

私のテストでは、タッチが終了した後にビューが減速している間、draggingプロパティは確実に取得されないようです。NO

私のテストでは、このdeceleratingプロパティも信頼できません。減速中にスクロールビューをタッチすると、ビューのスクロールが停止しても表示されたdeceleratingままになります。YES

于 2012-11-12T09:34:59.170 に答える
2

デリゲートscrollViewWillBeginDragging:は、ユーザーがドラッグを開始したときに呼び出され、scrollViewDidEndDragging:willDecelerate:scrollViewWillEndDragging:withVelocity:targetContentOffset:(ページングが有効になっていないiOS 5以降)は、ユーザーが指を離したときに呼び出されます。

scrollViewWillBeginDecelerating:とを確認することもできscrollViewDidEndDecelerating:ます。

参照:http ://developer.apple.com/library/ios/#documentation/uikit/reference/uiscrollviewdelegate_protocol/Reference/UIScrollViewDelegate.html

于 2012-11-12T09:25:12.813 に答える