web-dev-qa-db-fra.com

Titre de la barre de navigation Taille de la police

Je dois modifier la taille du titre de la barre de navigation pour un contrôleur de vue dans mon application iPhone. J'utilise iOS5 et j'ai essayé le code suivant:

if ([self.tabBarItem respondsToSelector:@selector(setTitleTextAttributes:)]) {
    NSLog(@"*** Support method(iOS 5): setTitleTextAttributes:");
    [self.tabBarItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                [UIFont fontWithName:@"AmericanTypewriter" size:20.0f], UITextAttributeFont,
                                                [UIColor blackColor], UITextAttributeTextColor,
                                                [UIColor grayColor], UITextAttributeTextShadowColor,
                                                [NSValue valueWithUIOffset:UIOffsetMake(0.0f, 1.0f)], UITextAttributeTextShadowOffset,
                                                nil]];
}

Cependant, cela ne s'applique qu'au tabBarItem. 

13
jcrowson

Vous devez récupérer la propriété de la barre de navigation et l'utilisation @property(nonatomic, copy) NSDictionary *titleTextAttributes.

Pour plus d'informations, voir Référence de la classe UINavigationBar et Personnalisation de la section UINavigationBar .

Pour mieux comprendre votre question: quel type de contrôleur avez-vous?

EDIT

[self.navigationController.navigationBar setTitleTextAttributes:...];

si vous accédez à la navigationController dans un contrôleur poussé.

[navigationController.navigationBar setTitleTextAttributes:...];

si navigationController est votre UINavigationController actuelle. Cela peut être utilisé par exemple si vous avez le code suivant:

UINavigationController* navigationController = ...;
[navigationController.navigationBar setTitleTextAttributes:...];
14
Lorenzo B

Vous l'avez déjà, mais vous pouvez également utiliser les méthodes d'attributs suivantes.

Pour la couleur,

NSDictionary *attributes=[NSDictionary dictionaryWithObjectsAndKeys:[UIColor RedColor],UITextAttributeTextColor, nil];

self.navigationController.navigationBar.titleTextAttributes = attributes;

Pour la taille,

NSDictionary *size = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"Arial" size:17.0],UITextAttributeFont, nil];

self.navigationController.navigationBar.titleTextAttributes = size;

Merci.

Pour iOS 7 et supérieur

Pour la taille:

NSDictionary *size = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"Arial" size:17.0],NSFontAttributeName, nil];

self.navigationController.navigationBar.titleTextAttributes = size;
25
Gajendra K Chauhan

Depuis iOS7, j'aime toujours ce qui suit:

[[UINavigationBar appearance] setTitleTextAttributes:
    [NSDictionary dictionaryWithObjectsAndKeys:
        [UIFont fontWithName:@"Helvetica-Bold" size:18.0],NSFontAttributeName,
        nil]];

Le mot clé UITextAttributeFont a été déprimé sous iOS7, vous êtes censé le remplacer par NSFontAttributeName.

Vous pouvez utiliser [self.navigationController.navigationBar setTitleTextAttributes:] pour définir l’apparence de quelqu'un navigationController, alors que [UINavigationBar appearance] setTitleTextAttributes:] fonctionne directement pour l’ensemble de votre application (vous devez bien sûr la placer dans une position de propriété).

10
Veight Zhou

Swift 2.0:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        UINavigationBar.appearance().titleTextAttributes = [
            NSFontAttributeName: UIFont(name: "DINNextLTW04-Regular", size: 20)!
        ]

        return true
    }

Ou

 override func viewDidLoad() {
  super.viewDidLoad()

  self.navigationController?.navigationBarHidden =  false
  self.title = "SAMPLE"

//Set Color
  let attributes: AnyObject = [ NSForegroundColorAttributeName: UIColor.redColor()]
  self.navigationController!.navigationBar.titleTextAttributes = attributes as? [String : AnyObject]


//Set Font Size
  self.navigationController!.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "Arial", size: 37.0)!];

 }
4
A.G

Mon exemple

guard let sansLightFont = UIFont(name: "OpenSans", size: 20) else { return }
navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName : sansLightFont]
0
Alexander Khitev