Выравнивание элементов UIToolBar - PullRequest
110 голосов
/ 02 марта 2009

У меня есть три UIBarButtonItem, созданные как показано ниже. Они выровнены по левому краю, и я бы хотел выровнять центр, чтобы с правой стороны не было зазора. Я не вижу свойства выравнивания на 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 ]

257 голосов
/ 02 марта 2009

Добавьте два элемента UIBarButtonSystemItemF FlexibleSpace на вашу панель инструментов, слева и справа от ваших элементов

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

Добавление их, как и любых других элементов панели инструментов, будет равномерно распределять пространство между ними.

28 голосов
/ 28 ноября 2014

Это также можно сделать прямо из раскадровки.

Просто перетащите элементы на панель инструментов и превратите некоторые из них в гибкое или фиксированное пространство, чтобы получить желаемый эффект. См. Два примера ниже.

Evenly spaced

Centered

8 голосов
/ 24 января 2013

В Xamarin iOS

Выровнено по правому краю:

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

По центру:

var flexibleSpace = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace);
yourBar.SetItems(new [] { flexibleSpace, yourButton, flexibleSpace}, false);
5 голосов
/ 06 мая 2016

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]
...