288 votes

Couleur du texte du titre de la barre de navigation de l'iPhone

Il semble que la couleur du titre de la barre de navigation iOS soit blanche par défaut. Existe-t-il un moyen de la changer pour une autre couleur ?

Je suis conscient de la navigationItem.titleView en utilisant une image. Comme mes compétences en matière de conception sont limitées et que je n'ai pas réussi à obtenir le glossy standard, je préfère changer la couleur du texte.

Tout commentaire serait très apprécié.

39voto

Pramesh Points 160

Dans IOS 7, vous pouvez modifier la couleur du titre.

self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor greenColor] forKey:NSForegroundColorAttributeName];

13voto

Casebash Points 22106

La solution de tewha fonctionne bien si vous essayez de changer la couleur sur une page, mais je veux pouvoir changer la couleur sur chaque page. J'ai fait quelques petites modifications pour que la solution fonctionne pour tous pages sur un UINavigationController

NavigationDelegate.h

//This will change the color of the navigation bar
#import <Foundation/Foundation.h>
@interface NavigationDelegate : NSObject<UINavigationControllerDelegate> {
}
@end

NavigationDelegate.m

#import "NavigationDelegate.h"
@implementation NavigationDelegate

- (void)navigationController:(UINavigationController *)navigationController 
      willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
    CGRect frame = CGRectMake(0, 0, 200, 44);//TODO: Can we get the size of the text?
    UILabel* label = [[[UILabel alloc] initWithFrame:frame] autorelease];
    label.backgroundColor = [UIColor clearColor];
    label.font = [UIFont boldSystemFontOfSize:20.0];
    label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
    label.textAlignment = UITextAlignmentCenter;
    label.textColor = [UIColor yellowColor];
    //The two lines below are the only ones that have changed
    label.text=viewController.title;
    viewController.navigationItem.titleView = label;
}
@end

13voto

Sandeep Points 599

À partir d'iOS 5, nous devons définir la couleur et la police du texte du titre de la barre de navigation à l'aide du dictionnaire titleTextAttribute (dictionnaire prédéfini dans la référence de classe du contrôleur UInavigation).

 [[UINavigationBar appearance] setTitleTextAttributes:
 [NSDictionary dictionaryWithObjectsAndKeys:
  [UIColor blackColor],UITextAttributeTextColor, 
[UIFont fontWithName:@"ArialMT" size:16.0], UITextAttributeFont,nil]];

10voto

Pier-Luc Gendreau Points 2288

Court et doux.

[[[self navigationController] navigationBar] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor redColor]}];

10voto

Gaurav Gilani Points 469
Write below code in any of the view controller viewdidLoad or viewwillAppear method.

    - (void)viewDidLoad
    {
        [super viewDidLoad];

        self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName: [UIColor yellowColor]};

    self.title = @"Home";
    // Do any additional setup after loading the view.
    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X