2013-06-05 8 views
5

Voglio cambiare tutto il colore del testo di UILabel per l'app totale come posso farlo. C'è un modo semplice per cambiare il colore dell'etichetta.cambia il colore del testo di UILabel per il progetto totale

Ho provato a farlo, ma voglio cambiare scrivere questo codice in ogni classe

for(UIView *view in [testScroll subviews]) 
    { 
     if([view isKindOfClass:[UILabel class]]) 
     { 
      [(UILabel *)view setTextColor:[UIColor whiteColor]]; 

     } 
     else if([view isKindOfClass:[UIView class]]) 

    } 

Do chiunque avere metodo semplice.

+1

Stai mirando a iOS 5+? – Alladinian

+0

@ Alladinian sì – user2197875

risposta

1

Creare una sottoclasse di UILabel. È possibile sovrascrivere le funzioni di init in cui è possibile impostare il colore desiderato. Usa quella sottoclasse per tutto il tuo progetto.

+0

Perché dovresti farlo quando puoi semplicemente usare '[[UILabel appearance] setTextColor: [UIColor redColor]];'? Che cambierà il colore del testo di tutti i UILabels. Per favore, potresti spiegare e dare una ragione per farlo a modo tuo usando 'aspetto'? – Popeye

+0

@Popeye Sembra che ci siano alcuni problemi con l'utilizzo del proxy UIAppearence su UILabel. Consulta http://stackoverflow.com/a/11839198/1029360 – Adithya

+0

@Popeye Non sono riuscito a ottenere le etichette redcolor usando la nostra istruzione – user2197875

12

Beh, se ci si rivolge iOS 5+ si potrebbe fare che veramente facile (dentro di te AppDelegate):

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    //... 

    //This color will affect every label in your app 
    [[UILabel appearance] setTextColor:[UIColor redColor]]; 

    //... 

    return YES; 
} 

Questo funziona perché UILabel conforme alle UIAppearance protocollo, così da poter personalizzare qualsiasi classe che è conforme a il protocollo come questo. Per ulteriori informazioni su questo e here is a nice tutorial to get you startedhere is Apple's docs on the protocol

+0

risposta semplice e piacevole :) – samir

+1

Il blu è più carino: '[[Aspetto UILabel] setColor: [UIColor blueColor]];' ^^ – Groot

+0

Modificato il mio pensiero: '[[Aspetto UILabel] setColor: [UIColor purpleColor]];' – Groot

2
@interface CustomLabel : UILabel 
@end 

@implementation CustomLabel 

- (id)init{ 
    if ([super init]){ 
     self.textColor = // Putt here the color you want. 
    } 

    return self; 
} 

e ora utilizzare jus tua customLabel.

+0

posso modificare nel file appdelegate – user2197875

+0

Perché dovresti farlo quando puoi semplicemente usare [[UILabel appearance] setTextColor: [UIColor redColor]] ;? Che cambierà il colore del testo di tutti i UILabels. Per favore, potresti spiegare e dare una ragione per farlo a modo tuo usando l'apparenza? – Popeye

+1

@Popeye perché fare con UIAppareance non è flessibile, immagina se un giorno vorrà quell'unica etichetta redColor e tutti gli altri colori blu :) – samir