Répondre

57

Voici comment faire dans le code si quelqu'un vient sur ce poste:

UIBarButtonItem *leftButton = [[[UIBarButtonItem alloc] initWithTitle:@"Item" style:UIBarButtonItemStyleBordered target:self action:@selector(btnItem1Pressed:)] autorelease]; 

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

UIBarButtonItem *rightButton = [[[UIBarButtonItem alloc] initWithTitle:@"Item" style:UIBarButtonItemStyleBordered target:self action:@selector(btnItem2Pressed:)] autorelease]; 


self.toolbarItems = [NSArray arrayWithObjects: leftButton, flex, rightButton, nil]; 
29

Insérez un élément dont l'identificateur est "espace flexible".

+0

Cela ressemble à une meilleure solution que la mienne! – bpapa

+0

Fonctionne comme un charme! Excellente solution –

+0

Lorsque je fais cela, le bouton n'apparaît pas sur l'écran. –

-1

Si vous pouvez vous contenter de ce ne pas être un UIBarButtonItem (par exemple, un bouton d'information), ce que je fais est de changer la couche du bouton pour être toujours en face de la barre d'outils. De cette façon, lorsque je fais glisser le bouton sur IB dans la barre d'outils, il ne l'aspire pas automatiquement sur le côté gauche.

8

Swift Code:

func addDoneButton() -> UIToolbar { 
    let toolbar = UIToolbar() 
    let flexButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil) 
    let doneButton = UIBarButtonItem(title: "Done", style: .Plain, target: self, action: Selector("donePressed")) 
    toolbar.setItems([flexButton, doneButton], animated: true) 
    toolbar.sizeToFit() 
    return toolbar 
} 
27

- un élément dans le droit comme celui-ci

enter image description here

UIBarButtonItem *flexible = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil]; 

UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithTitle:@"item1” style:UIBarButtonItemStylePlain target:self action:nil]; 

self.toolbarItems = [NSArray arrayWithObjects: flexible, item1, nil]; 

-Deux articles gauche et à droite comme ce

enter image description here

UIBarButtonItem *flexible = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil]; 

UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithTitle:@"item1” style:UIBarButtonItemStylePlain target:self action:nil]; 
UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithTitle:@"item2” style:UIBarButtonItemStylePlain target:self action:nil]; 

self.toolbarItems = [NSArray arrayWithObjects: item1, flexible, item2, nil]; 

articles -trois comme celui-ci

enter image description here

UIBarButtonItem *flexible = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil]; 

UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithTitle:@"item1” style:UIBarButtonItemStylePlain target:self action:nil]; 
UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithTitle:@"item2” style:UIBarButtonItemStylePlain target:self action:nil]; 
UIBarButtonItem *item3 = [[UIBarButtonItem alloc] initWithTitle:@"item3” style:UIBarButtonItemStylePlain target:self action:nil]; 

self.toolbarItems = [NSArray arrayWithObjects: item1, flexible, item2, flexible, item3, nil]; 

-quatre articles comme celui-ci

enter image description here

UIBarButtonItem *flexible = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil]; 

UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithTitle:@"item1” style:UIBarButtonItemStylePlain target:self action:nil]; 
UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithTitle:@"item2” style:UIBarButtonItemStylePlain target:self action:nil]; 
UIBarButtonItem *item3 = [[UIBarButtonItem alloc] initWithTitle:@"item3” style:UIBarButtonItemStylePlain target:self action:nil]; 
UIBarButtonItem *item4 = [[UIBarButtonItem alloc] initWithTitle:@"item4” style:UIBarButtonItemStylePlain target:self action:nil]; 

self.toolbarItems = [NSArray arrayWithObjects: item1, flexible, item2, item3, flexible, item4, nil]; 

donc quand vous voulez ajouter un espace vous devez ajouter le bouton de la barre flexible.

0

3.x Swift ou au-dessus:

internal var textFieldHandlerToolBar: UIToolbar = { 
     let tb = UIToolbar.init(frame: CGRect.init(origin: .zero, size: CGSize.init(width: UIScreen.screenSize().width, height: 44.0))) 
     let flexibleButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace, target: nil, action: nil) 
     let doneBarButton = UIBarButtonItem.init(title: "Done", style: UIBarButtonItemStyle.done, target: self, action: #selector(actionDonePickerSelection)) 
     tb.setItems([flexibleButton, doneBarButton], animated: false) 
     return tb 
    }() 

Sortie:

enter image description here

Questions connexes