moderne aanpak
De moderne manier, voor de gehele navigatie controller ... doe dit keer, wanneer uw navigatie controller root view wordt geladen.
[self.navigationController.navigationBar setTitleTextAttributes:
@{NSForegroundColorAttributeName:[UIColor yellowColor]}];
Echter, dit lijkt niet een effect hebben in de daaropvolgende uitzicht.
Classic aanpak
De oude manier, per view controller (deze constanten zijn voor iOS 6, maar als het wilt doen per view controller op iOS 7 uiterlijk jij dezelfde aanpak, maar met verschillende constanten wilt):
Je moet een te gebruiken UILabelals titleViewvan de navigationItem.
Het label moet:
- Heeft u een duidelijke achtergrond kleur (
label.backgroundColor = [UIColor clearColor]).
- Gebruik bold 20pt systeem lettertype (
label.font = [UIFont boldSystemFontOfSize: 20.0f]).
- Hebben een schaduw van zwart met 50% alfa (
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5]).
- U wilt de tekst uitlijning gecentreerd evenals ingesteld (
label.textAlignment = NSTextAlignmentCenter( UITextAlignmentCentervoor oudere SDK's).
Stel de label tekstkleur te zijn wat aangepaste kleur die u wilt. U wilt een kleur die niet leidt tot de tekst om zich te mengen in de schaduw, die moeilijk te lezen zou zijn.
Ik werkte dit uit door middel van trial and error, maar de waarden die ik kwam met zijn uiteindelijk te simpel voor hen niet te zijn wat Apple geplukt. :)
Als u wilt om dit te verifiëren, laat deze code in initWithNibName:bundle:in PageThreeViewController.mvan Apple's NavBar monster . Dit zal de tekst met een geel label te vervangen. Dit moet niet te onderscheiden van de oorspronkelijke door de code van Apple, met uitzondering van de kleur.
- (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: Lees ook Erik B's antwoord hieronder. Mijn code toont het effect, maar zijn code biedt een eenvoudigere manier om dit te laten vallen in plaats op een bestaande weergave controller.