2013-06-05 9 views
5

Ich möchte alle UILabel's Textfarbe für die gesamte App ändern, wie kann ich das tun. Es gibt eine einfache Möglichkeit, Etikettenfarbe zu ändern.ändere UILabels Textfarbe für das gesamte Projekt

Ich habe versucht, aber ich möchte schreiben in jeder Klasse jemand einfache Methode haben den Code ändern

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

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

    } 

Sie.

+1

Sind Sie auf iOS 5+ ausgerichtet? – Alladinian

+0

@ Alladinian ja – user2197875

Antwort

1

Erstellen Sie eine Unterklasse des UILabel. Sie können die Init-Funktionen überschreiben, in denen Sie die gewünschte Textfarbe festlegen können. Verwenden Sie diese Unterklasse in Ihrem gesamten Projekt.

+0

Warum würden Sie das tun, wenn Sie einfach '[[UILabel Aussehen] setTextColor: [UIColor redColor]];'? Dies ändert die Textfarbe aller UILabels. Könnten Sie uns bitte erklären und einen Grund geben, es mit "Aussehen" zu tun? – Popeye

+0

@Popeye Es scheint einige Probleme bei der Verwendung von UIA-Präsentationen auf UILabel zu geben. Siehe http://StackOverflow.com/a/11839198/1029360 – Adithya

+0

@Popeye ich konnte nicht rote Farbe Etiketten mit ur Anweisung – user2197875

12

Nun, wenn Sie iOS peilen 5+ Sie das einfach tun könnte (in dir AppDelegate):

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

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

    //... 

    return YES; 
} 

Dies funktioniert, weil UILabel zu UIAppearance Protokoll entspricht, so dass Sie jede Klasse anpassen könnte, die konform das Protokoll so. Weitere Informationen zu diesem here is a nice tutorial to get you started und here is Apple's docs on the protocol

+0

schöne und einfache Antwort :) – samir

+1

Blau ist hübscher: '[[UILabel Aussehen] setColor: [UIColor blueColor]];' ^^ – Groot

+0

änderte meine Meinung: '[[UILabel Aussehen] 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; 
} 

und jetzt jus Ihre Custom verwenden.

+0

kann ich in appdelegate Datei ändern – user2197875

+0

Warum sollten Sie dies tun, wenn Sie einfach [[UILabel Aussehen] setTextColor: [UIColor redColor]]; Dies ändert die Textfarbe aller UILabels. Bitte können Sie erklären und geben Sie einen Grund, es über Ihre Verwendung von Aussehen zu machen? – Popeye

+1

@Popeye, weil mit UIAppareance nicht flexibel ist, stellen Sie sich vor, wenn er eines Tages will, dass wir redColor und alle anderen blauen Farbe :) – samir

Verwandte Themen