iPhone - Как я могу поймать нажатие на UIWebView или UIImageView - PullRequest
0 голосов
/ 23 апреля 2011

У меня есть вид, сгенерированный так:

oneView = [[UIView alloc] initWithFrame:CGRectMake(x, y , w, h)];
oneView.tag = i;

UITapGestureRecognizer* recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap2:)];
[recognizer setNumberOfTouchesRequired:1];
[oneView addGestureRecognizer:recognizer];
recognizer.delegate = self;
[recognizer release];

- (void)handleSingleTap2:(UITapGestureRecognizer *)recognizer {
    int viewID = recognizer.view.tag;
    NSLog(@"id : %d", viewID);
}

Это работает, но если я заменю UIView alloc на UIWebView или UIImageView alloc, событие касания больше не будет инициировано.

Как мне заставить это работать?

Ответы [ 3 ]

0 голосов
/ 23 апреля 2011

Относительно вашего вопроса о UIWebView Я предлагаю вам взглянуть на drawnonward's Ответ:

Работает ли UIGestureRecognizer на UIWebView?

А для части UIImageView см. Это руководство:

UIImageView-с-масштабированием-нажатием

Я не мог вставить код здесь, ноя думаю, что это сделает эту область чище и легче для чтения.

0 голосов
/ 23 апреля 2011

вы должны переопределить

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer;

делегировать функцию и вернуть YES;

0 голосов
/ 23 апреля 2011

set userInteractionEnabled = YES и, если необходимо, multipTouchEnabled = YES

...