2013-12-03 4 views
0

У меня есть viewcontroller, который содержит веб-представление.iOS UITapGestureRecognizer и UIWebView

Я хотел бы добавить два вида gesturerocignizers в viewController: Один UITapGestureRecognizer и один UILongPressureGestureRecognizer.

Вот код:

UILongPressGestureRecognizer *longPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(backToDashboards:)]; 
UITapGestureRecognizer *doubleTapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(backToDashboards:)]; 

doubleTapGesture.numberOfTapsRequired = 2; 
doubleTapGesture.delegate = self; 

[self.view addGestureRecognizer:longPressGesture]; 
[self.view addGestureRecognizer:doubleTapGesture]; 

Моя точка зрения иерархии:

-ViewController 
| 
|-View (added the gesture recognizers for this view) 
    |-WebView 

Я добавил метод shouldRecognizeSimultaneouslyWithGestureRecognizer с return YES

Но если я долгое нажатие на экране ничего не происходит, только если место для печати находится в месте, где ничто не может прокручиваться в веб-просмотре.

Устройство распознавания двойного нажатия не работает вообще.

Любая идея?

Спасибо заранее!

+0

Я понятия не имею, извините. –

+0

Я просто посмотрел на мои распознаватели жестов, и ни один из селекторов не принял аргумента. Попробуйте вывести двоеточие (backToDashboards :) и поместить оператор журнала в метод backToDashBoards. – JScarry

+0

Аргумент - отправитель – kennyevo

ответ

-1

попробуйте использовать нижеследующий код. Где бы вы не добавили gester в код? ниже код работает для меня.

- (void)viewDidLoad 
    { 
     [super viewDidLoad]; 
     UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(handleLongPress:)]; 
     longPress.numberOfTouchesRequired = 2; 
     [self.view addGestureRecognizer:longPress]; 

     // if u want to add gesture for u webview, 
     //[self.webview addGestureRecognizer:longPress] 
    } 

    -(void)handleLongPress:(UILongPressGestureRecognizer *)gesture 
    { 
    } 

    //You should enable simultaneous gesture recognition 

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

Я подозреваю, что, поскольку ваш веб-просмотр находится поверх вашего представления, приложение не знает, если вы используете веб-просмотр или self.view. Ответьте на это сообщение How to detect of tap gesture is from uiwebview or self.view?

+0

Привет! Спасибо за ваш ответ, но я не думаю, что это проблема. Я редактировал оригинальный вопрос. (добавлена ​​моя иерархия просмотров) – kennyevo

Смежные вопросы