Подтвердить что ты не робот

Создание UILabel touchable

У меня есть UILabel, и я хотел бы заставить его реагировать на прикосновение. Я попробовал поставить кнопку поверх ярлыка, благодаря этому я мог бы взаимодействовать с кнопкой. Однако кнопка не может быть полностью прозрачной, верно? Я мог бы установить альфа кнопки на 0,02, но она по-прежнему видна на фоне. Как это решить? Может быть, я мог бы установить свойства каким-то другим способом, чтобы сделать их полностью невидимыми? Или есть другое решение?

4b9b3361

Ответ 1

Во-первых, почему бы просто не использовать кнопку и не установить заголовок кнопки для содержимого ярлыка?

Если вы не можете/не хотите этого делать, вы также можете установить userInteractionEnabled = YES на метку, а затем добавить ярлык распознавания жестов.

Ответ 2

В Swift:

label.userInteractionEnabled = true
let gestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("labelPressed"))
label.addGestureRecognizer(gestureRecognizer)

Получите свой клик в действии:

func labelPressed(){
    print("Label pressed")
    //Your awesome code.
}

Ответ 3

Я обычно делаю это:

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(pushAction)];
[myLabel addGestureRecognizer:tap];

Я не знаю, работает ли это с ярлыками, но я просто делаю прозрачный UIView с тем же прямоугольником и помещаю его сверху.


Хорошо, я проверил, он работает только в UIView, но тогда сделайте следующее:

UIView *tapView = [[UIView alloc] initWithFrame:myButton.frame];

И поместите "tapView" в метод addGestureRecognizer.