У меня есть UITapGestureRecognizer, добавленный к представлению UIViewController, которое находится в UITableViewCell в UITableView, почему он не срабатывает? - PullRequest
1 голос
/ 21 июня 2011

Название довольно объяснительно, но у меня есть UITableView, который я заполняю с помощью пользовательских UITableViewCells.

Внутри этих пользовательских UITableViewCells я добавляю пользовательские UIViewControllers, которые отображают пользовательские изображения.

К этому UIView UIViewController я добавляю UITapGestureRecognizer следующим образом:

- (void)viewDidLoad {
[super viewDidLoad];

UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self 
                                                                             action:@selector(handleTap:)];
recognizer.numberOfTapsRequired = 1;
recognizer.delegate = self;
[self.imageView addGestureRecognizer:recognizer];

[recognizer release];
}

-(void)handleTap:(UITapGestureRecognizer *)sender{
NSLog(@"Handling tap on ArticleTileViewController");
}

Когда я запускаю приложение, ячейки заполняют изображения великолепно, но когда я нажимаю на изображение (или пользовательский UIViewController), ничего не происходит! Мой NSLog не сработает. Я уже час искал код и не вижу, в чем дело.

Кто-нибудь видит что-то, чего мне не хватает? Или они сталкивались с этим раньше?

Ответы [ 3 ]

8 голосов
/ 22 июня 2011

UIImageView объекты имеют userInteractionEnabled по умолчанию NO. Это может быть и здесь. Добавить

self.imageView.userInteractionEnabled = YES;

к viewDidLoad методу, который вы представили в вопросе.

0 голосов
/ 21 ноября 2012
- (void)viewDidLoad {
       UILongPressGestureRecognizer* gesture = [[[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)] autorelease];
       gesture.delegate = self;
       [myWebView addGestureRecognizer:gesture];
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
      return YES;
}
0 голосов
/ 21 июня 2011

Если вы пытаетесь получить кнопку в каждой ячейке, вот пост о том, как это сделать. Взглянуть. iPhone SDK: открытие ячейки с помощью специальной кнопки, а не касанием ячейки

...