Самый простой способ - просто добавить распознаватель жестов к реальному представлению (будь то UILabel или какое-либо другое собственное представление).Чтобы распознаватель жестов работал, представление должно быть установлено userInteractionEnabled.
Вот пример, предполагая, что ваше представление метки (или что-то еще) называется labelView:
UITapGestureRecognizer* gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(userTappedOnLink:)];
// if labelView is not set userInteractionEnabled, you must do so
[labelView setUserInteractionEnabled:YES];
[labelView addGestureRecognizer:gesture];
В этом примере сообщение действия будет отправлено на self
, и сообщение будет определено как
- (void)userTappedOnLink:(UIGestureRecognizer*)gestureRecognizer;
Это работает так же, как подключение любого другого подкласса UIControl, такого каккнопка.
Другие примечания: не пытайтесь добавить один и тот же распознаватель жестов в несколько представлений, он не будет работать.Не добавляйте более одной копии распознавателя жестов к нескольким представлениям (они не заменяют их, они просто складывают их и тратят впустую память).Вы должны добавить распознаватель жестов при первоначальном создании и настройке представления.
Для получения дополнительной информации см. Документацию для UIGestureRecognizer .