Nella mia applicazione IPhone, voglio che il testo in UILabel si illumini per un secondo, quindi sbiadisce per un secondo ;. Inoltre voglio ripetere questo ciclo per dire 3 o 4 volte.IPhone Testo Effetto bagliore
È possibile?
Nella mia applicazione IPhone, voglio che il testo in UILabel si illumini per un secondo, quindi sbiadisce per un secondo ;. Inoltre voglio ripetere questo ciclo per dire 3 o 4 volte.IPhone Testo Effetto bagliore
È possibile?
Sì. Usa beginAnimation ... commitAnimation e usa il valore alfa per illuminare o attenuare ULabel. Assicurati che il valore predefinito dell'alfa di UILabel inizi a 0,85 e si illumini a 1,0 e poi si oscuri a 0,75, e quando tutto è finito, torni a 0,85.
Ci sono altri modi per farlo, come avere un'altra vista in cima all'etichetta che è grigia o nera e si usa lo stesso inizio ... commitAnimation per cambiare l'alfa su quello da 0 a 0.20 circa.
Leggi la domanda per favore – SeniorShizzle
Sta rispondendo solo alla parte dell'animazione, quindi questa risposta è ok. –
Ci sono molti modi per farlo, con qualità variabile. Un modo sarebbe quello di sottoclasse UILabel e implementare una sorta di effetto gradiente nei coregrafici nel metodo drawRect.
È inoltre possibile giocare con l'ombreggiatura del testo (modificare il colore e l'alfa) e vedere se è possibile ottenere un bagliore decente.
Il modo più semplice è probabilmente quello di creare un'immagine trasparente a forma di bagliore in Photoshop e posizionarla dietro il testo, e poi fare come suggerisce mahboudz ... dissolvere l'immagine dentro e fuori usando la corimazione.
Ho pubblicato un codice di esempio che sottoclasse UILabel e consente di applicare bagliore e ombre morbide al testo.
http://www.redrobotstudios.com/blog/2010/04/29/create-glow-soft-shadow-text-on-iphone/
Come di 3,2 te c'è il supporto diretto per le ombre nel SDK.
label.layer.shadowColor = [label.textColor CGColor];
label.layer.shadowOffset = CGSizeMake(0.0, 0.0);
giocare con i parametri:
label.layer.shadowRadius = 3.0;
label.layer.shadowOpacity = 0.5;
E per evitare l'ombra di essere fermato dai bouds etichetta:
label.layer.masksToBounds = NO;
Non dimenticate di
#include <Quartzcore/Quartzcore.h>
e collegamento alloQuadrio CoreGraphics
(grazie ai commentatori per averlo indicato).
- (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;
}
Ottengo l'effetto bagliore quando si utilizza questo.
Spero che aiuti.
Happy coding :)
bella domanda. Voglio fare la cosa esatta. – Raptor
Dovresti accettare la risposta di @ andrewgleave, che ha funzionato alla grande! – msgambel