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