#iphone #touch #uilabel #glow
#iPhone #коснитесь #uilabel #свечение
Вопрос:
У меня есть UILabel. Я хочу, чтобы в нем светилась сенсорная область. То есть, когда я нажимаю на точку в этой UILabel, небольшая круглая часть вокруг точки касания должна отображаться со светящимся эффектом. Как это можно получить?
Ответ №1:
Ну, вы можете сделать это, создав a CALayer
или a CAGradientLayer
в зависимости от того, как вы хотите, чтобы ваше свечение и добавило его в качестве подслоя к слою метки в месте касания.
Для включения касания UILabel
посмотрите на userInteractionEnabled
свойство. Вам нужно будет установить для него значение YES
.
Затем вам нужно будет прикрепить a UITapGestureRecognizer
к ярлыку для получения касания. Как только у вас будет местоположение касания, добавьте пользовательский слой свечения в качестве подвида к слою метки в невидимом состоянии. Анимируйте включение и выключение слоя свечения. Возможно, вам захочется повторить несколько раз, прежде чем удалять слой свечения в качестве подслоя по завершении.
Ответ №2:
UILabels не реагируют на касания.
Используйте UIButton с пользовательским типом и предоставляйте изображения для нормального состояния и (светящегося) выделенного состояния.
Комментарии:
1. «UILabels не реагируют на прикосновения». Они мигают, если userInteractionEnabled == ДА
Ответ №3:
Распознаватели жестов хороши, но если вы хотите сделать что-то, что начинается, когда палец касается, останавливается, когда палец перестает касаться, и перемещается с пальцем между ними, тогда трудно придумать хороший распознаватель жестов для этого. Я думаю, в этом случае вам было бы лучше просто использовать touchesBegan, touchesMoved и touchesEnded (не забудьте touchesCancelled).
Вы можете либо поместить эти методы в свой контроллер представления, либо в подкласс UILabel. В любом случае, установите userInteractionEnabled = YES на ярлыке.
Что касается того, как графически создать этот эффект, на данный момент у меня нет никаких умных идей для этого.