Как мигать сенсорной областью в UILabel iPhone?

#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 на ярлыке.

Что касается того, как графически создать этот эффект, на данный момент у меня нет никаких умных идей для этого.