У меня есть UITableView
, в котором есть несколько пользовательских ячеек. В пользовательских ячейках у меня есть основной UIImageView
. Когда ячейка создана, я добавляю распознаватель жестов касания в представление изображения.
Когда изображение нажато, я запускаю следующее:
- (void) handleImageTap:(UIGestureRecognizer *)gestureRecognizer {
NSLog(@"Image tapped");
UIImageView *imageView = (UIImageView *)gestureRecognizer.view;
// send the image instead of self when firing the segue
[self performSegueWithIdentifier:@"remindMeTurnInfo" sender:imageView];
}
Затем я передаю изображение в новый контроллер представления в методе prepareForSegue
:
if ([segue.identifier isEqualToString:@"remindMeTurnInfo"]) {
UIImageView *imgView = (UIImageView *)sender;
MESPlayedTurnReminderViewController *VC = segue.destinationViewController;
VC.turnImage = imgView.image;
}
Вопрос
1. Мне нужна ссылка на ячейку, в которой находится UIImageView, которая была нажата. Таким образом, пользователь касается одного из изображений ячеек, и мне нужно знать, из какой ячейки (indexPath) было получено это изображение.
2. Я обнаружил, что иногда при нажатии на изображение вызывается didSelectRowAtIndexPath
. Это неправильно, и его не следует вызывать, только соответствующий метод handleTap из Gesture Rec. следует назвать. Как я могу гарантировать, что didSelectRowAtIndexPath
не вызывается, так как мне нужно запустить какой-то другой код, когда ячейка действительно (правильно) выбрана.