3 votes

UISearchBar à droite de UINavigationBar dans l'objectif c

J'ai créé une application iPad dans laquelle je voudrais que ma barre de recherche soit positionnée à droite d'une barre de navigation.

Lorsque j'ajoute ma barre de recherche dans ma barre de navigation, elle est positionnée au milieu de la navigationBar. Au milieu, en revanche, je veux afficher une image spécifique.

Comment puis-je y parvenir ?

Voici mon extrait de code,

[self.navigationController.navigationBar setTintColor:[[UIColor alloc]initWithRed:150.0 / 255 green:22.0 / 255 blue:22.0 / 255 alpha:0.0]];

UIImage *image = [UIImage imageNamed:@"logo(1).png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
[self.navigationItem setTitleView:imageView];

self.navigationItem.titleView = sBar;

[titleView release];

Avec le code ci-dessus, je suis capable de voir seulement la barre de recherche (positionnée au milieu) dans mon simulateur.

12voto

Mihai Fratu Points 3033

Essayez ça :

UISearchBar *searchBar = [[[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 100, 40)] autorelease];
searchBar.backgroundImage = [[[UIImage alloc] init] autorelease];
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:searchBar] autorelease];

Vous pouvez toujours changer le cadre. Gardez toujours à l'esprit que le backgroundImage n'est disponible que dans iOS 5. Vous devez rechercher des options alternatives pour vous débarrasser de l'arrière-plan pour iOS 4.x

Faites-moi savoir si ça marche pour vous.

0voto

ade Points 4561

Essayez :

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:sBar];

0voto

Je me suis amusé avec ça et je n'ai pas réussi à aligner les choses correctement (après avoir ajouté quelques boutons à côté de la barre de recherche).

Jusqu'à ce que quelqu'un propose une meilleure solution, il est probablement préférable de masquer la barre de navigation ([self.navigationController setNavigationBarHidden:YES]) dans cette vue et de la remplacer par une UIView contenant tous les éléments dont vous avez besoin. Je pense que le comportement est plus prévisible de cette façon.

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