Делаем UILabel осязаемым - PullRequest
       8

Делаем UILabel осязаемым

17 голосов
/ 05 марта 2011

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

Ответы [ 3 ]

50 голосов
/ 05 марта 2011

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

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

8 голосов
/ 21 августа 2015

В Swift:

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

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

func labelPressed(){
    print("Label pressed")
    //Your awesome code.
}
7 голосов
/ 05 марта 2011

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

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

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


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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...