Allineamento di elementi UIToolBar
-
03-07-2019 - |
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];
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.
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]