moderne tilnærming
Den moderne måten for hele navigeringskontrolleren ... gjøre dette en gang, når navigasjonskontrolleren rot syn er lastet.
[self.navigationController.navigationBar setTitleTextAttributes:
@{NSForegroundColorAttributeName:[UIColor yellowColor]}];
Men dette betyr ikke synes ha en effekt i etterfølgende visninger.
Classic tilnærming
Den gamle måten, per view controller (disse konstantene er for iOS 6, men hvis ønsker å gjøre det per view kontrolleren på iOS 7 utseende du ønsker det samme tilnærming, men med forskjellige konstanter):
Du må bruke en UILabelsom titleViewav navigationItem.
Den bør etiketten:
- Ha en klar bakgrunnsfarge (
label.backgroundColor = [UIColor clearColor]).
- Bruk fet skrift 20 pkt system (
label.font = [UIFont boldSystemFontOfSize: 20.0f]).
- Ha en skygge av svart med 50% alfa (
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5]).
- Det er lurt å sette tekstjustering til sentrert også (
label.textAlignment = NSTextAlignmentCenter( UITextAlignmentCenterfor eldre SDK).
Sett etikett tekstfarge for å være hva tilpasset fargen du ønsker. Du vil ha en farge som ikke forårsaker teksten å blande inn skygge, noe som ville være vanskelig å lese.
Jeg jobbet ut dette gjennom prøving og feiling, men verdiene jeg kom opp med er slutt for enkelt for dem å ikke være hva Apple plukket. :)
Hvis du ønsker å bekrefte dette, slipp denne koden inn initWithNibName:bundle:i PageThreeViewController.mav Apples NavBar prøve . Dette vil erstatte teksten med en gul etikett. Dette bør være umulig å skille fra den opprinnelige produsert av Apples kode, bortsett fra fargen.
- (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: Les også Erik B svar nedenfor. Koden min viser effekten, men kode tilbyr en enklere måte å slippe dette på plass på en eksisterende visning kontrolleren.