У меня есть кнопка в ячейке tableView, которая мне нужна для реагирования на сенсорные события. Обычно это легко можно решить с помощью
[cell.playButton addTarget:self action:@selector(playButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
внутри -tableView: cellForRowAtIndexPath:
Проблема, с которой я столкнулся, заключается в том, что моя кнопка находится внутри пользовательского подкласса UITableViewCell, а также является подпредставлением представления, которое я создаю внутри этого класса ..
например:
UIView *view = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
self.theView = view;
[self addSubview:view];
[view release];
UIButton *playButton = [UIButton buttonWithType:UIButtonTypeCustom];
playButton.frame = CGRectMake(5, 5, 100, 30);
[playButton setImage:[UIImage imageNamed:@"button_playvid.png"] forState:UIControlStateNormal];
[playButton setImage:[UIImage imageNamed:@"button_playvid_active.png"] forState:UIControlStateHighlighted];
self.playButton = playButton;
[self.theView addSubview:playButton];
Когда кнопка является подпредставлением представления, которое я создаю в пользовательском UITableViewCell, ячейка подсвечивается вместо нажатия кнопки, поэтому цель, которую я установил в -tableView: cellForRowAtIndexPath, никогда не вызывается. Не уверен, почему .. любая помощь?
Спасибо
Joel
PS. Я понимаю, что, вероятно, нет практической причины для создания фонового представления в точности, как это, так как оно уже есть. Это просто пример кода, который я использую, чтобы объяснить возникшую проблему ..: D
Спасибо за поиск!