2

私のアプリでは、上方向のバックグラウンド スクローラーにスワイプ ジェスチャ レコグナイザーが必要です。ここに私のコードがあります

それはviewDidLoadにあります

UISwipeGestureRecognizer *Swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(SwipeRecognizer:)];
Swipe.direction = UISwipeGestureRecognizerDirectionUp;
[backgroundScroller addGestureRecognizer:Swipe];

そしてそれは SwipeRecognizer です:

- (void) SwipeRecognizer:(UISwipeGestureRecognizer *)sender {
    if (sender.direction | UISwipeGestureRecognizerDirectionUp){
        NSLog(@" *** SWIPE UP ***");
    }
}

問題は、スクロールを有効にしてジェスチャーを同時にキャプチャできないことです。スクロールが有効になっていないと言ったとき、ジェスチャーを認識できます。しかし、スクロールとジェスチャー認識を同時に行う必要があります。可能ではないですか?

4

2 に答える 2

2

gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:UIScrollViewsPanレコグナイザーをブロックしないようにメソッドをオーバーライドします

そしてそれはうまくいくでしょう…</p>

ジェスチャ認識機能のために自分自身にデリゲートを追加することを忘れないでください。@death7eaterのコメントで述べたように。

于 2012-09-03T13:12:40.227 に答える
1

私はそのように私の問題を解決しました:

これはviewDidLoad用です:

UISwipeGestureRecognizer *Swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(SwipeRecognizer:)];
    Swipe.direction = UISwipeGestureRecognizerDirectionUp;
    [backgroundScroller addGestureRecognizer:Swipe];
    Swipe.delegate = self;

これは SwipeRecognizer メソッドです。

- (void) SwipeRecognizer:(UISwipeGestureRecognizer *)sender {
    if (sender.direction | UISwipeGestureRecognizerDirectionUp){
        NSLog(@" *** SWIPE UP ***");
    }
}

@lukaswelte のおかげで、複数のジェスチャーを同時に実行できます。

- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    return YES;
}
于 2012-09-03T13:47:26.350 に答える