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

Хорошо, таким образом, у меня есть a UILabel созданный в интерфейсном разработчике, который отображает немного некоторый текст по умолчанию "касания для начала".

Когда пользователь касается UILabel Я хочу, чтобы это инициировало метод IBAction: -(IBAction)next; который обновляет текст на маркировке для высказывания чего-то нового.
Было бы действительно удобно, если бы это позволило мне просто перетаскивать соединение от своего метода до моей маркировки и затем выбирать, исправляют внутри, как с кнопкой. но увы, никакая сигара.

так так или иначе я предполагаю, что мой вопрос, я оказывающийся перед необходимостью подкласс UILabel заставить это работать? Или есть ли некоторый способ, которым я могу перетащить кнопку по маркировке, но сделать ее 0% непрозрачный. Или есть ли простое решение, которое я пропускаю?

100
задан TheNeil 22 May 2019 в 08:46
поделиться

2 ответа

Вы можете использовать UIButton, сделать его прозрачным, т.е. произвольный тип без изображения, и добавить на него UILabel (по центру). Затем подключите обычные события кнопок.

30
ответ дан 24 November 2019 в 04:45
поделиться

UILabel наследуется от UIView, который наследуется от UIResponder. Все объекты UIresponder могут обрабатывать события касания. Итак, в вашем файле класса, который знает о вашем представлении (который содержит UIlabel), выполните:

-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event;

В построителе интерфейса установите значение тега UILabel. когда касания происходят в вашем методе touchesBegan, проверьте значение тега представления, которому принадлежит этот тег:

UITouch *touch = [touches anyObject];

if(touch.view.tag == MY_TAG_VAL)
label.text = @"new text";

Вы связываете свой код в файле класса с объектом UILabel в построителе интерфейса, объявляя переменную экземпляра UILabel с префиксом IBOutlet:

IBOutlet UILabel *label;

Затем в построителе интерфейсов вы можете их подключить.

70
ответ дан 24 November 2019 в 04:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: