Выравнивание элементов UIToolBar
у меня есть три UIBarButtonItem
создан, как показано ниже. Они выравнивают влево, и я хотел бы выровнять центр, чтобы не было зазора с правой стороны. Я не вижу свойства align на UIToolBar
. Есть ли другой способ сделать это?
//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];
4 ответа:
добавьте два элемента UIBarButtonSystemItemFlexibleSpace на панель инструментов, слева и справа от ваших элементов
UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; [toolbar setItems:[NSArray arrayWithObjects:flexibleSpace, settingsButton,deleteButton,aboutButton, flexibleSpace, nil]];
добавление этих элементов, как и любые другие элементы панели инструментов, будет равномерно распределять пространство между ними.
Это также можно сделать прямо из раскадровки.
просто перетащите элементы на панели инструментов и превратите некоторые из них в гибкое или фиксированное пространство, чтобы получить желаемый эффект. См. два примера ниже.
в Xamarin iOS
выравнивание по правому краю:
yourBar.SetItems(new [] { new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace), yourButton }, false);
Выравнивание По Центру:
var flexibleSpace = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace); yourBar.SetItems(new [] { flexibleSpace, yourButton, flexibleSpace}, false);
Swift версия:
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]