moderne Ansatz
Die moderne Art und Weise für die gesamten Navigation-Controller ... dies einmal tun, wenn Ihr Navigations Controllers Stammansicht geladen wird.
[self.navigationController.navigationBar setTitleTextAttributes:
@{NSForegroundColorAttributeName:[UIColor yellowColor]}];
Allerdings scheint dies keine Wirkung in den folgenden Ansichten haben.
klassischer Ansatz
Der alte Weg, per-View-Controller (diese Konstanten sind für iOS 6, aber wenn es auf iOS 7 Aussehen per-View-Controller tun möchten, müssen Sie den gleichen Ansatz wollen, aber mit verschiedenen Konstanten):
Sie müssen verwenden UILabelals die titleViewvon der navigationItem.
Das Etikett sollte:
- Haben Sie eine klare Hintergrundfarbe (
label.backgroundColor = [UIColor clearColor]).
- Verwenden Sie fett 20pt Systemschriftart (
label.font = [UIFont boldSystemFontOfSize: 20.0f]).
- Haben Sie einen Schatten von Schwarz mit 50% alpha (
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5]).
- Sie werden die Textausrichtung festlegen möchten als auch zentriert (
label.textAlignment = NSTextAlignmentCenter( UITextAlignmentCenterfür ältere SDKs).
Stellen Sie die Etikettentextfarbe zu sein, was auch immer individuelle Farbe, die Sie mögen. Sie haben eine Farbe möchten, die nicht der Text in den Schatten zu verschmelzen verursacht, was schwer zu lesen.
Ich arbeitete dies aus durch Versuch und Irrtum, aber die Werte kam ich mit letztlich zu einfach für sie nicht zu sein, was Apple gepflückt. :)
Wenn Sie dies überprüfen wollen, fallen diesen Code in initWithNibName:bundle:in PageThreeViewController.mder NavBar Probe von Apple . Dadurch wird den Text mit einem gelben Aufkleber ersetzen. Dies sollte aus dem Original produziert von Apples Code, mit Ausnahme der Farbe nicht zu unterscheiden sein.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self)
{
// this will appear as the title in the navigation bar
UILabel *label = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:20.0];
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
label.textAlignment = NSTextAlignmentCenter;
// ^-Use UITextAlignmentCenter for older SDKs.
label.textColor = [UIColor yellowColor]; // change this color
self.navigationItem.titleView = label;
label.text = NSLocalizedString(@"PageThreeTitle", @"");
[label sizeToFit];
}
return self;
}
Edit: Lesen Sie auch Erik B Antwort unten. Mein Code zeigt die Wirkung, aber sein Code bietet einen einfacheren Weg, dies in Platz auf einem vorhandenen View-Controller fallen zu lassen.