10
votes

Définition de la police et de la taille de la police du texte de la barre de titre dans une entreprise utativevoller

J'ai une application basée sur la navigation simple pour l'iPhone / Objective-C

dans les divers UIViewControlers qui sont poussés à la vue, je peux définir le texte dans la barre de titre à l'aide de quelque chose comme xxx < / Pre>

Y a-t-il un moyen de contrôler la police et et la forme de police du titre dans le texte de la barre de titre?

merci!


0 commentaires

4 Réponses :


3
votes

Vous pouvez attribuer n'importe quel UIView à une zone de titre de NavController.

Créer un Uilabel et définissez sa police et sa taille de toute façon que vous souhaitez, puis vous l'attribuez au NaviseTem.TitleView de UIViewController . Assurez-vous que l'arrière-plan de l'Uilabel est réglé sur ClearColor.

Cela ne fonctionne que sur la vue NAV-NAV. Lorsque l'utilisateur perçoit dans la hiérarchie du contrôleur d'affichage et que le bouton "Retour" est affiché, le titre de TitleView est identifié et l'étiquette de texte régulière est affichée.


2 commentaires

Y a-t-il un moyen de définir la taille de la police, etc. pour les barres de titre down ?


Les documents officiels disent que les Titleweviews de forage sont ignorés (probablement parce qu'ils souhaitent que l'utilisateur voie le texte avant d'apparaître dans le bouton "BACK" du niveau suivant vers le bas.) Mais vous pouvez toujours essayer de remplacer la vue et de numériser de manière récursive le Voir hiérarchie de la barre NAVBAR jusqu'à ce que vous trouviez le bon Uilabel puis définissez la police à ce sujet.



17
votes

La manière appropriée de redimensionner le texte du titre d'une NAVCONTROLLER consiste à définir la propriété Titleview de la navigationItem

comme ceci (dans ViewDidLoad) P>

   UILabel* tlabel=[[UILabel alloc] initWithFrame:CGRectMake(0,0, 300, 40)];
        tlabel.text=self.navigationItem.title;
    tlabel.textColor=[UIColor whiteColor];
    tlabel.backgroundColor =[UIColor clearColor];
    tlabel.adjustsFontSizeToFitWidth=YES;
    self.navigationItem.titleView=tlabel;


0 commentaires

5
votes

Vous voudrez peut-être embroquer l'étiquette de sorte qu'il n'a pas l'air floue et plat: xxx


2 commentaires

Je ne sais pas ce que Fontthelper est, alors j'ai utilisé: label.font = [uifont boldsystemfontoFsize: 18.0]; Cela semble assez proche de la police d'origine du titre de la barre de navigation.


@Ginny - Désolé de cela, je n'ai pas remarqué que je suis parti dans un appel à ma propre classe de Fonthelper!



4
votes

Si vous voulez que cela fonctionne sur iPhone et iPad, et souhaitez également obtenir le titre centré, utilisez le code suivant.

 - (void)viewDidLoad
{
    [super viewDidLoad];

    UILabel* label=[[UILabel alloc] initWithFrame:CGRectMake(0,0, self.navigationItem.titleView.frame.size.width, 40)];
    label.text=self.navigationItem.title;
    label.textColor=[UIColor whiteColor];
    label.backgroundColor =[UIColor clearColor];
    label.adjustsFontSizeToFitWidth=YES;
    label.font = [AppHelper titleFont];
    label.textAlignment = NSTextAlignmentCenter;
    self.navigationItem.titleView=label;
}


0 commentaires