对齐UIToolBar项目

时间:2009-03-02 15:21:46

标签: ios cocoa-touch uitoolbar

我创建了三个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 个答案:

答案 0 :(得分:257)

将两个UIBarButtonSystemItemFlexibleSpace项添加到工具栏中,项目的左侧和右侧

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

像添加任何其他工具栏项一样添加这些项目将在两者之间均匀分配空间。

答案 1 :(得分:28)

这也可以直接从故事板中完成。

只需拖放工具栏中的项目,然后将其中一些项目转换为灵活空间或固定空间即可获得所需效果。请参阅以下两个示例。

Evenly spaced

Centered

答案 2 :(得分:8)

在Xamarin iOS中

右对齐:

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

中心对齐:

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

答案 3 :(得分:5)

Swift版本:

heroku run rials console