2 votes

Le redimensionnement de l'UIToolbar provoque une taille bizarre de l'UIBarButtonItem en paysage

Lorsque je crée et ajoute une UIToolBar et des éléments UIBarButton, comment puis-je faire en sorte que la barre d'outils et les éléments apparaissent correctement dans les deux orientations. Voici ce que j'ai fait jusqu'à présent :

self.toolbar = [[[UIToolbar alloc]initWithFrame:CGRectMake(0, 372, 320, 44)]autorelease];
self.toolbar.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

self.deleteButton = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemTrash target:self action:@selector(deleteButtonClicked)] autorelease];
self.deleteButton.style = UIBarButtonItemStylePlain;

UIBarButtonItem *flexibleSpace = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil] autorelease];

self.shareButton = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(shareButtonClicked)] autorelease];
self.shareButton.style = UIBarButtonItemStylePlain;
self.navigationItem.leftBarButtonItem = backItem;

NSArray *toolbarItems = [NSArray arrayWithObjects:self.shareButton,flexibleSpace,self.deleteButton,nil];
[self.toolbar setItems:toolbarItems animated:NO];   

Comme vous pouvez le voir sur les images, les UIBarButtonItems sont corrects en portrait, mais bizarrement écrasés et décentrés (notamment l'icône de la corbeille) en paysage. Y a-t-il une solution évidente qui m'échappe, ou dois-je procéder à un redimensionnement manuel pour y parvenir ?

Portrait Orientation

Landscape Orientation

C'est une différence subtile, mais voici à quoi cela devrait ressembler : What it should look like

0voto

Cyprian Points 7158

Vous devez regarder le Autoresizing dans l'option Size inspector tant pour la UIToolBar que pour les boutons. UIToolBar peut aussi avoir une coche pour Autoresize subviews décochez cette case pour qu'elle n'influence pas vos boutons.

0voto

Zombo Points 1119

La solution, au moins jusqu'à iOS 5, consiste à utiliser la fonction UINavigationController Vous pouvez utiliser la barre d'outils intégrée de l'UE au lieu de créer la vôtre. La barre d'outils intégrée sera redimensionnée correctement et automatiquement.

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