質問
以下のように3つの UIBarButtonItem
を作成しました。それらは左に整列し、右側に隙間がないように中央に整列します。 UIToolBar
にalignプロパティが表示されません。これを達成する別の方法はありますか?
//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];
解決
2つのUIBarButtonSystemItemFlexibleSpaceアイテムをツールバーのアイテムの左右に追加します
UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[toolbar setItems:[NSArray arrayWithObjects:flexibleSpace, settingsButton,deleteButton,aboutButton, flexibleSpace, nil]];
他のツールバーアイテムと同様にこれらを追加すると、2つのツールバースペースが均等に配分されます。
他のヒント
これは、ストーリーボードから直接行うこともできます。
ツールバーで項目をドラッグアンドドロップするだけで、それらの一部を柔軟なスペースまたは固定スペースに変更して、目的の効果を得ることができます。以下の2つの例を参照してください。
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]
所属していません StackOverflow