обнаружение двойного нажатия в UIWebView - PullRequest
2 голосов
/ 19 сентября 2011

Я пытаюсь обнаружить двойное нажатие в uiwebview. следующий код когда я отлаживаю, отладчик приходит к initwithcoder, но никогда не касается прикосновений и функций выбора. почему так?

Я помещаю UIWebView в мой xib-файл и устанавливаю класс инспектора идентификации в MyWebView

#import "MyWebView.h"


@implementation MyWebView

- (void) initTap {

    UITapGestureRecognizer *singleFingerDoubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleFingerDoubleTap:)];
    singleFingerDoubleTap.numberOfTouchesRequired = 1;
    singleFingerDoubleTap.numberOfTapsRequired = 2;
    [self addGestureRecognizer:singleFingerDoubleTap];
    [singleFingerDoubleTap release];
}

- (id)initWithCoder:(NSCoder*)coder
{
    if (self = [super initWithCoder:coder]) {
        // Initialization code.
        [self initTap];
    }
    return self;
}

- (id)initWithFrame:(CGRect)frame {

    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code.
        [self initTap];
    }
    return self;
}


-(void)handleSingleFingerDoubleTap:(id)sender {
    NSLog(@"Doulble click detected !");
}


- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [[event allTouches] anyObject];
    if (touch.tapCount == 2) {
            //put you zooming action here
        NSLog(@"Doulble click detected !");
    }
}


- (void)dealloc {
    [super dealloc];
}


@end

Ответы [ 2 ]

3 голосов
/ 28 июня 2013

Вам просто нужно добавить делегата в распознаватель

singleFingerDoubleTap.delegate = self;

Затем используйте следующий метод для возврата YES.

#pragma mark Gesture recognizer delegate

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

Не забудьте добавить объявление соответствия в ваш файл класса.

Как это

@interface ORWebViewController : UIViewController<UIGestureRecognizerDelegate>
0 голосов
/ 19 сентября 2011

В случае, если вы хотите отменить действие масштабирования по умолчанию при двойном нажатии, , это поможет вам.

UPDATE:

Пожалуйста, не считайте вышеупомянутую ссылку, так как автор переместил ее.

Вы можете найти ссылки из Отключение эффекта увеличения по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...