Добавить UITapGestureRecognizer в UIWebView - PullRequest
24 голосов
/ 24 мая 2011

Можно ли в iOS установить распознаватель касаний в UIWebView, чтобы при выполнении одного касания веб-представления действие выполнялось?нажмите на мой веб-просмотр.

Спасибо.

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self 
                                                                      action:@selector(handleTap)];
tap.numberOfTapsRequired = 1;

[webView addGestureRecognizer:tap];
[tap release]; 


-(void) handleTap {
    NSLog(@"tap");
}

Ответы [ 3 ]

42 голосов
/ 04 февраля 2012

Я обнаружил, что мне нужно реализовать этот метод, чтобы заставить его работать:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}
24 голосов
/ 24 мая 2011

Ваш подкласс UIViewController должен реализовывать UIGestureRecognizerDelegate и возвращать YES из gestureRecognizer: shouldReceiveTouch: при необходимости.

Затем вы можете назначить его свойству делегата вашего UIGestureRecognizer.

tap.delegate = self;
10 голосов
/ 11 марта 2015
  1. Добавить UIGestureRecognizerDelegate для просмотра контроллера

    <UIGestureRecognizerDelegate>
    
  2. Добавление жеста крана в веб-просмотр.

    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(flip)];
    tap.numberOfTapsRequired = 1;
    tap.delegate = self;
    [_webview addGestureRecognizer:tap];
    
  3. - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer    shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
        return YES;
    }
    
...