Как определить, какая UILabel была нажата на пользовательском UITableviewcell? - PullRequest
0 голосов
/ 16 октября 2011

У меня есть две метки с двумя отдельными тегами каждая.

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

Внутри

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {}

я могу получить один из них по коду:

cell = [walltable cellForRowAtIndexPath:indexPath];
topLabel= (UILabel *)[cell.contentView.subviews objectAtIndex:0];

но я не знаю тот, который был нажат.

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

Ответы [ 3 ]

0 голосов
/ 16 октября 2011

Один из методов, как предложено выше, состоит в том, чтобы назначить тег каждой метке, а затем оценить тег вызывающей UILabel в вашем обратном вызове.

Другой подход, если вы используете пользовательскую ячейку (т. Е. UITableViewCell в подклассе, в отличие от стандартного UITableViewCell, в который вы добавили пользовательский контент / макет), заключается в простом определении каждой из двух меток. как свойства вашей подклассовой клетки. Если метки назначены как соответствующие свойства, можно сравнить эти свойства с вызывающим абонентом и определить, какая метка была нажата.

0 голосов
/ 17 октября 2011

Я хочу отметить кое-что важное: ваша ссылка на ярлык:

topLabel= (UILabel *)[cell.contentView.subviews objectAtIndex:0];

не является правильным, универсальным способом сделать это.Я бы порекомендовал прикрепить элементы вашей ячейки к IBOutlet и получить ссылку оттуда.Что касается вашего вопроса о сенсорных событиях UILabel, я думаю, что хороший способ добиться этого - добавить UITapGestureRecognizer к вашей метке, например так:

UITapGestureRecognizer *tgr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(firstLabelTapped)];
[firstLabel addGestureRecognizer:tgr];
[tgr release];

Сделайте то же самое со второй меткой.Если вы хотите передать информацию обратно в контроллер представления TableView, сделайте это с делегированием.Удачи!

0 голосов
/ 16 октября 2011

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

Обработка сенсорного события в UILabel и подключение его к IBAction

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...