9
votes

IPhone / iPad Ajouter une image et un texte au titre de navigation

J'essaie simplement d'ajouter une image et un texto au titre de la navigationItem. C'est ce que je fais, mais cela ne montre que l'image et non le titre. Cela semble être assez facile.

exemple ( xxx


4 Réponses :


10
votes

En définissant une vue de titre personnalisé, vous remplacez la vue standard qui affiche normalement le texte du titre. À partir de la documentation de Titleview dans UINAVIGATIONITEM :

Si vous définissez cette propriété sur un titre personnalisé, il est affiché au lieu du titre.

Vous devez donc ajouter votre propre vue (éventuellement un uilabel ) pour afficher votre titre - une façon de faire cela serait d'ajouter un Uilabel et le UiImageView ci-dessus en tant que sousviews d'un conteneur uIView et définissez que comme titre titreview .


0 commentaires

27
votes

Voici mon code:

UIView *myView = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 300, 30)]; 
UILabel *title = [[UILabel alloc] initWithFrame: CGRectMake(40, 0, 300, 30)];

title.text = NSLocalizedString(@"My Title", nil);
[title setTextColor:[UIColor whiteColor]];
[title setFont:[UIFont boldSystemFontOfSize:20.0]];

[title setBackgroundColor:[UIColor clearColor]];
UIImage *image = [UIImage imageNamed:@"MyLogo.png"];
UIImageView *myImageView = [[UIImageView alloc] initWithImage:image];

myImageView.frame = CGRectMake(0, 0, 30, 30); 
myImageView.layer.cornerRadius = 5.0;
myImageView.layer.masksToBounds = YES;
myImageView.layer.borderColor = [UIColor lightGrayColor].CGColor;
myImageView.layer.borderWidth = 0.1;

[myView addSubview:title];
[myView setBackgroundColor:[UIColor  clearColor]];
[myView addSubview:myImageView];
self.navigationItem.titleView = myView;


0 commentaires

0
votes
UIImage *image = [UIImage imageNamed:@"image.png"]; // Image name with extension

self.navigationItem.titleView = [[[UIImageView alloc] initWithImage:image] autorelease];
This maybe the shortest way to do that.

1 commentaires

Le plus court est self.navigentItem.titleview = [uiImageView.alloc initwithImage: [UIIMAGE Imagenamed: @ "image.png"]]];



4
votes

dans Swift 2: xxx

liée gotcha: Titlewevview Centres automatiquement, si ce n'est pas le cas avec l'exemple ci-dessus, vous utilisez probablement un Screensize plus petit (par exemple, iPhone). Changez simplement la largeur de l'UIView et Uilabel de 300 à moins, comme adapté. Il va renverser au centre quand il y a de la place.


0 commentaires