Domanda

Ho tre UIBarButtonItem creati come di seguito. Si allineano a sinistra e vorrei allineare il centro in modo che non ci sia uno spazio sul lato destro. Non vedo una proprietà align su UIToolBar . C'è un altro modo per farlo?

//create some buttons
UIBarButtonItem *aboutButton = [[UIBarButtonItem alloc] initWithTitle:@"About" style:UIBarButtonItemStyleBordered target:self action:@selector(showAbout:)];
[toolbar setItems:[NSArray arrayWithObjects:settingsButton,deleteButton,aboutButton,nil]];
//Add the toolbar as a subview to the navigation controller.
[self.navigationController.view addSubview:toolbar];
È stato utile?

Soluzione

Aggiungi due elementi UIBarButtonSystemItemFlexSpace alla tua barra degli strumenti, a sinistra e a destra dei tuoi elementi

UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[toolbar setItems:[NSArray arrayWithObjects:flexibleSpace, settingsButton,deleteButton,aboutButton, flexibleSpace, nil]];

Aggiungendoli come faresti con qualsiasi altro elemento della barra degli strumenti, lo spazio verrà distribuito uniformemente tra loro.

Altri suggerimenti

Questo può essere fatto anche direttamente da uno storyboard.

Basta trascinare e rilasciare gli elementi nella barra degli strumenti e trasformarne alcuni in uno spazio flessibile o fisso per ottenere l'effetto desiderato. Vedi i due esempi seguenti.

Spaziatura uniforme

Centrato

In Xamarin iOS

Allineato a destra:

yourBar.SetItems(new [] { new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace), yourButton }, false);

Allineamento al centro:

var flexibleSpace = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace);
yourBar.SetItems(new [] { flexibleSpace, yourButton, flexibleSpace}, false);

Versione rapida:

    let toolbar = UIToolbar(frame: CGRectMake(0, 0, viewController.view.frame.size.width, 35.0))
    let flexibleSpace = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: viewController, action: nil)
    let button1 = UIBarButtonItem(title: "A", style: UIBarButtonItemStyle.Plain, target: viewController, action: foo)
    let button2 = UIBarButtonItem(title: "B", style: UIBarButtonItemStyle.Plain, target: viewController, action: bar)
    let button3 = UIBarButtonItem(title: "C", style: UIBarButtonItemStyle.Plain, target: viewController, action: blah)
    toolbar.items = [button1, flexibleSpace, button2, flexibleSpace, button3]
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top