3

私はiPhone開発者の初心者ですが、

私はepubリーダーを作成し、epubの各ページを自分のwebview

私がしたいのは、ユーザーが2回目に行ったときに新しいページに移動したいのですが、ユーザーが初めて行ったright swipe gestureときに何もしたくないということです。right swipe gesture

UISwipeGestureRecognizer *swipeRight

のような方法はありますか?

if(swipeRight.touch.count > 2)
{
  // do this
}

どんな助けでも感謝します。

前もって感謝します !

編集

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
    float scrollViewHeight = scrollView.frame.size.height;
    float scrollContentSizeHeight = scrollView.contentSize.height;
    float scrollOffset = scrollView.contentOffset.y;

    if (scrollOffset == 0)
    {
        swipeUp = [[UISwipeGestureRecognizer alloc] initWithTarget:self  action:@selector(swipeLeftAction:)];
        swipeUp.direction = UISwipeGestureRecognizerDirectionUp;
        swipeUp.numberOfTouchesRequired=2;
        swipeUp.delegate = (id<UIGestureRecognizerDelegate>)self;
        swipeUp.cancelsTouchesInView=YES;
        [_webview addGestureRecognizer:swipeUp];  
    }
    else if (scrollOffset + scrollViewHeight == scrollContentSizeHeight)
    {
        swipeDown = [[UISwipeGestureRecognizer alloc] initWithTarget:self  action:@selector(swipeRightAction:)];
        swipeDown.direction = UISwipeGestureRecognizerDirectionDown;
        swipeDown.numberOfTouchesRequired=2;
        swipeDown.delegate = (id<UIGestureRecognizerDelegate>)self;
        swipeDown.cancelsTouchesInView=YES;
        [_webview addGestureRecognizer:swipeDown];

    }
4

4 に答える 4

6

UIWebView の UIScrollView に、独自の UISwipeGestureRecognizer が失敗した場合にのみその UIPanGestureRecognizer を起動するように指示できます。

これはあなたがそれを行う方法です:

UISwipeGestureRecognizer *rightSwipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeGesture:)];
UISwipeGestureRecognizer *leftSwipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeGesture:)];
rightSwipeGesture.direction = UISwipeGestureRecognizerDirectionRight;
leftSwipeGesture.direction = UISwipeGestureRecognizerDirectionLeft;
[self.view addGestureRecognizer:rightSwipeGesture];
[self.view addGestureRecognizer:leftSwipeGesture];

[_webView.scrollView.panGestureRecognizer requireGestureRecognizerToFail:rightSwipeGesture];
[_webView.scrollView.panGestureRecognizer requireGestureRecognizerToFail:leftSwipeGesture];

それはあなたのためにトリックをするはずです。

于 2013-09-16T18:02:52.083 に答える
4

UIGestureRecognizer サブクラスをそのビューにアタッチし、呼び出しを保留するだけです...

UISwipeGestureRecognizer* rightSwipeRecognizer = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(someAction)];
rightSwipeRecognizer.numberOfTouchesRequired = 2;
rightSwipeRecognizer.direction = UISwipeGestureRecognizerDirectionRight;
rightSwipeRecognizer.cancelsTouchesInView = YES;
[self.webView addGestureRecognizer:rightSwipeRecognizer]; // add in your webviewrightSwipeRecognizer
于 2012-06-25T10:48:25.157 に答える
1

スワイプ ジェスチャが目的の種類の動作をサポートしているとは思いませんが、次の操作を行うことで簡単に実現できます。

  1. 最初のスワイプで、フラグを設定してタイマーを開始します。残りは何もしません。

  2. 2回目のスワイプで、

    を。タイマーが発火した場合(発火すると、タイマーはフラグをリセットします)、ポイント1に従って実行します。

    b. タイマーが起動していない (フラグがまだ設定されている) 場合は、アクションを実行してタイマーをキャンセルします。

UISwipeGestureRecognizer のサブクラスを定義して、このすべての動作をカプセル化することを考えるかもしれません。

于 2012-06-25T10:44:52.650 に答える
1
Try like below it will help you
UISwipeGestureRecognizer *rightRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(rightSwipeHandle:)];
    rightRecognizer.direction = UISwipeGestureRecognizerDirectionRight;
    rightRecognizer.numberOfTouchesRequired = 2;
    [self.view addGestureRecognizer:rightRecognizer];
    [rightRecognizer release];
于 2012-06-25T10:18:57.560 に答える