Получить подключенную ячейку в обработчике UITapGestureRecognizer - PullRequest
3 голосов
/ 09 февраля 2012

Я установил распознаватель жестов для своей ячейки таблицы в приложении IOS5:

UITapGestureRecognizer* oneFingerDoubleTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(cellOneFingerDoubleTap:)];
oneFingerDoubleTap.numberOfTapsRequired = 2;
[cell addGestureRecognizer:oneFingerDoubleTap];

И реализованный метод обработчика:

- (void)cellOneFingerDoubleTap:(id) sender
{
    NSLog(@"taptap");
}

Работает нормально. Моя проблема заключается в том, что я не могу передать ячейку, к которой был подключен, или к другим данным с подключенной ячейкой. Как я вижу (id) отправитель сам UITapGestureRecognizer.

Мой вопрос: как я могу получить повернутую ячейку в методе обработчика (cellOneFingerDoubleTap)? Как я могу получить в методе обработчика индекс повернутой ячейки?

Спасибо!

Ответы [ 2 ]

9 голосов
/ 09 февраля 2012

Если вы возьмете view из распознавателя жестов, который был передан вам по вашему cellOneFingerDoubleTap: методу, то вы получите ячейку, к которой подключены.Что-то вроде:

- (void)cellOneFingerDoubleTap:(UIGestureRecognizer*)recognizer {
    UITableViewCell *cell = (UITableViewCell*)recognizer.view;
}

[Я просто предполагаю, что под «клеткой» вы подразумеваете UITableViewCell, кстати]

0 голосов
/ 09 февраля 2012

UIGestureRecognizer имеет свойство

-(UIView *)view

, которое можно использовать для получения представления, к которому оно было присоединено.

Поскольку вы подключили распознаватель к UITableViewCell, передайте представление распознавателя вUITableView;

-indexPathForCell:
...