Эффект свечения текста IPhone

В моем приложении IPhone я хочу, чтобы текст в UILabel светился на секунду, а затем исчезал в течение секунды ;. Также я хочу повторить этот цикл, скажем, 3 или 4 раза.

Это возможно?

Начиная с версии 3.2 вы поддерживаете прямую поддержку теней в SDK.

label.layer.shadowColor = [label.textColor CGColor]; label.layer.shadowOffset = CGSizeMake(0.0, 0.0); 

Играйте с параметрами:

 label.layer.shadowRadius = 3.0; label.layer.shadowOpacity = 0.5; 

И чтобы избежать того, чтобы тень была обрезана ярлыком bouds:

 label.layer.masksToBounds = NO; 

Не забывайте

 #include  

и ссылки на QuartzCore или CoreGraphics (спасибо комментаторам за указание на это).

Я отправил некоторый пример кода, который подclassы UILabel и позволяет применять сияние и мягкие тени к тексту.

http://www.redrobotstudios.com/blog/2010/04/29/create-glow-soft-shadow-text-on-iphone/

Да. Используйте beginAnimation … commitAnimation и используйте значение alpha, чтобы скрасить или уменьшить ULabel. Убедитесь, что значение по умолчанию для альфа-канала UILabel начинается с 0,85 и увеличивается до 1,0, а затем уменьшается до 0,75, и когда все будет сделано, вы вернетесь к 0,85.

Есть и другие способы сделать это, например, иметь другой вид поверх ярлыка, который является серым или черным, и использовать одно и то же begin … commitAnimation, чтобы изменить альфа на значение от 0 до 0,20 или около того.

Существует много способов сделать это с различным качеством. Одним из способов было бы подclassы UILabel и реализовать какой-то эффект gradleиента в coregraphics в методе drawRect.

Вы также можете играть с тенью текста (изменить цвет и альфу) и посмотреть, сможете ли вы придумать приличное свечение.

Самый простой способ, вероятно, сделать прозрачное изображение свечения в фотошопе и поместить его позади вашего текста, а затем сделать так, как mahboudz предлагает … затухать изображение в и из с использованием CoreAnimation.

 - (UILabel *) setUpGlowLabelWithFrame: (CGRect) frame fontSize: (int)fontSize { UILabel* label = [[UILabel alloc] initWithFrame:frame]; label.backgroundColor = [UIColor clearColor]; label.font = [UIFont boldSystemFontOfSize:fontSize]; label.textColor = [UIColor whiteColor]; label.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin; label.textAlignment = UITextAlignmentCenter; label.layer.shadowColor = [label.textColor CGColor]; label.layer.shadowOffset = CGSizeMake(0.0, 0.0); label.layer.masksToBounds = NO; label.layer.shadowRadius = 0.5f; label.layer.shadowOpacity = 0.95; label.numberOfLines = 2; label.tag = 20; return label; } 

Я использую эффект свечения.

Надеюсь, поможет.

Счастливое кодирование 🙂

Для тех из вас, кто использует Swift 4 , вот что я использовал для нескольких объектов для Glow того же цвета, что и они:

 let colorRed: UIColor? = timeLabel.textColor timeLabel.layer.shadowColor = colorRed?.cgColor timeLabel.layer.shadowRadius = 4.0 timeLabel.layer.shadowOpacity = 0.9 timeLabel.layer.shadowOffset = CGSize.zero timeLabel.layer.masksToBounds = false 

Что касается оживления свечения, просто добавьте таймер для 3-4 циклов и измените значение .shadowOpacity на что-то ниже.

Светящееся время со светящимся кольцом

Давайте будем гением компьютера.