Search code examples
ioswebviewzoominguiswipegesturerecognizer

iOS webview swipegesturerecognizer and zoom


In my app i have a webview with left and right swipegesturerecognizers. The problem is when i zoom in webview. It seems that swipegesturerecognizers are disturbing the webview scrollview delegate and webview zoom works bad. How can i do this correctly?

- (void)viewDidLoad
{
  [super viewDidLoad];
  UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self  action:@selector(swipeRightAction:)];
  swipeRight.direction = UISwipeGestureRecognizerDirectionRight;
  swipeRight.delegate = self;
  [webView addGestureRecognizer:swipeRight];

  UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeLeftAction:)];
  swipeLeft.direction = UISwipeGestureRecognizerDirectionLeft;
  swipeLeft.delegate = self;
  [webView addGestureRecognizer:swipeLeft];
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
  return YES;
}

- (void)swipeRightAction:(id)ignored
{
  NSLog(@"Swipe Right");
  //add Function
}

- (void)swipeLeftAction:(id)ignored
{
  NSLog(@"Swipe Left");
  //add Function
}

I solved it changing above delegate method with this one:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
   return YES;
}

Solution

  • I solved it changing above delegate method with this one:

    - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
    {
        return YES;
    }