スクロールを遅らせることはできUIScrollView
ますか?すでに遅れていることは承知していますが、遅れの時間間隔を増やしたいと思います。handlePan:
scrollViewをオーバーライドせずにそれを行う方法はありますpanGestureRecognizer
か?
質問する
249 次
1 に答える
3
あなたはこれを試すことができます:
DelayGestureRecognizer
クラスを作成する
#import <UIKit/UIGestureRecognizerSubclass.h>
@interface DelayGestureRecognizer : UIGestureRecognizer
@end
@implementation DelayGestureRecognizer
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesBegan:touches withEvent:event];
double delayInSeconds = 1.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
self.state = UIGestureRecognizerStateFailed;
});
}
@end
次に、あなたがあなたのを設定するときUIScrollView
:
DelayGestureRecognizer *delayGestureRecognizer = [DelayGestureRecognizer new];
[scrollView addGestureRecognizer:delayGestureRecognizer];
[scrollView.panGestureRecognizer requireGestureRecognizerToFail:delayGestureRecognizer];
(あなたは考えを理解します...実際には、ジェスチャーレコグナイザーが1秒以内に複数回呼び出された場合に備えて、タイマーを使用し、 UIGestureRecognizer
'sメソッドでタイマーを無効にする方がおそらく良いでしょう...)- reset
于 2013-03-19T16:50:27.513 に答える