59 votes

UINavigationBar titre multiligne

Existe-t-il un moyen simple de remplacer le titleView de l'élément de barre de navigation actuel dans une barre de navigation dans un contrôleur de navigation? J'ai essayé de créer une nouvelle UIView et de remplacer la propriété titleView de topView par ma propre UIVIew sans succès.

Fondamentalement, je veux un titre sur plusieurs lignes pour le titre de la barre de navigation. Aucune suggestion?

84voto

petert Points 5082

Définir l' titleView de la propriété de l' UINavigationItem. Par exemple, dans la vue du contrôleur viewDidLoad méthode que vous pourriez faire quelque chose comme:

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 480, 44)];
label.backgroundColor = [UIColor clearColor];
label.numberOfLines = 2;
label.font = [UIFont boldSystemFontOfSize: 14.0f];
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
label.textAlignment = UITextAlignmentCenter;
label.textColor = [UIColor whiteColor];
label.text = @"This is a\nmultiline string";

self.navigationItem.titleView = label;

#if !__has_feature(objc_arc)
[label release];
#endif

Il se présente comme ceci:

multi-line titlebar label

Rappelez-vous l' titleView propriété est ignorée si l' leftBarButtonItem n'est nil.

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