2010-07-16 3 views
4

У меня есть куча UILabels, которую я добавляю через код, и я хочу выполнить конкретное действие для каждого, если палец пользователя коснется внутри (подобно тому, как UIButton touchUpInside в IB). Каков наилучший способ сделать это?Программно выполнить действие на UILabel touchUpInside?

ответ

17

Самый простой способ, вероятно, использовать UIButton вместо UILabel. Пользовательский UIButton не имеет границы и может выглядеть как простая метка, но обрабатывает отслеживание событий для вас.

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

+0

удивительным, так просто. –

+1

Чтобы сделать кнопку более похожей на lable, вам может понадобиться многострочный текст с переворачиванием кнопки. См. Этот ответ для этого: http://stackoverflow.com/questions/604632/how-do-you-add-multi-line-text-to-a-uibutton – RajV

5

Вы можете использовать UITapGestureRecognizer для выполнения действий над полями Поля.

Задайте количество отводов и касаний объекта UITapGestureRecognizer.

[oneFingerTwoTaps setNumberOfTapsRequired:1]; 
[oneFingerTwoTaps setNumberOfTouchesRequired:1]; 

набор взаимодействия с пользователем поля этикетки, как

labelField.userInteractionEnabled = YES; 

затем добавить целевой метод над

UITapGestureRecognizer object.