En mi aplicación para iPhone, quiero que el texto en UILabel brille por un segundo y luego desaparezca por un segundo ;. También quiero repetir este ciclo por decir 3 o 4 veces.Efecto Resplandor de texto del iPhone
¿Esto es posible?
En mi aplicación para iPhone, quiero que el texto en UILabel brille por un segundo y luego desaparezca por un segundo ;. También quiero repetir este ciclo por decir 3 o 4 veces.Efecto Resplandor de texto del iPhone
¿Esto es posible?
Sí. Use beginAnimation ... commitAnimation, y use el valor alfa para aclarar o atenuar ULabel. Asegúrese de que el valor predeterminado de la alfa de UILabel comience en 0.85 y aumente a 1.0 y luego se oscurezca a 0.75, y cuando todo haya terminado, volverá a 0.85.
Hay otras maneras de hacerlo, como tener otra vista en la parte superior de la etiqueta que sea gris o negra, y utilice el mismo comenzar ... confirmarAnimación para cambiar el alfa de 0 a 0,20 o más.
Lea la pregunta, por favor – SeniorShizzle
Está respondiendo solo la parte de animación, por lo que esta respuesta es correcta. –
Hay muchas maneras de hacerlo, con calidad variable. Una forma sería subclase UILabel, e implementar algún tipo de efecto de gradiente en coregraphics en el método drawRect.
También puede jugar con la sombra de texto (cambiar el color y el alfa) y ver si puede obtener un brillo decente.
La manera más fácil es, probablemente, hacer una imagen de contorno resplandeciente transparente en photoshop y colocarla detrás de su texto, y luego hacer como mahboudz sugiere ... atenuar la imagen dentro y fuera utilizando la animación central.
He publicado un código de ejemplo que subclasifica UILabel y le permite aplicar brillo y sombras suaves al texto.
http://www.redrobotstudios.com/blog/2010/04/29/create-glow-soft-shadow-text-on-iphone/
A partir de 3,2 que existe un apoyo directo para las sombras en el SDK.
label.layer.shadowColor = [label.textColor CGColor];
label.layer.shadowOffset = CGSizeMake(0.0, 0.0);
jugar con los parámetros:
label.layer.shadowRadius = 3.0;
label.layer.shadowOpacity = 0.5;
Y para evitar la sombra de ser recortado por las bouds etiqueta:
label.layer.masksToBounds = NO;
No se olvide de
#include <Quartzcore/Quartzcore.h>
y enlace contra el QuartzCore
o CoreGraphics
frameworks (gracias a los comentaristas por señalar esto).
- (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;
}
Obtengo el efecto de brillo al usar esto.
Espero que ayude.
Happy coding :)
nice question. Quiero hacer exactamente lo mismo. – Raptor
¡Debería aceptar la respuesta de @andrewgleave, ya que funcionó muy bien! – msgambel