trucos - Efecto de resplandor del texto del iPhone
mensajes iphone (5)
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 disminuya a 0.75, y cuando todo haya terminado, regrese 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 use el mismo comando begin ... commitAnimation para cambiar el alfa de 0 a 0,20 o más.
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.
es posible?
Hay muchas formas 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 forma 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 usando 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/
- (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 cuando uso esto.
Espero eso ayude.
Feliz codificación :)
A partir de 3.2, hay soporte directo para sombras en el SDK.
label.layer.shadowColor = [label.textColor CGColor];
label.layer.shadowOffset = CGSizeMake(0.0, 0.0);
Juega con los parámetros:
label.layer.shadowRadius = 3.0;
label.layer.shadowOpacity = 0.5;
Y para evitar que la sombra quede cortada por la etiqueta bouds:
label.layer.masksToBounds = NO;
No olvides
#include <Quartzcore/Quartzcore.h>
y enlazar con los QuartzCore
o QuartzCore
(gracias a los comentaristas por señalar esto).