9

ツールバー スペースに UIBarButtonItems を均等に配置する方法はありますか?

4

3 に答える 3

18

UIBarButtonItemsの間にフレキシブルスペースバーボタンアイテムをドロップします。これはIBで行うのは非常に簡単です。コントロールの下部を見下ろしてください。

これをプログラムで実行したい場合は、次のコードが役立ちます。

UIBarButtonItem* button1 = [[UIBarButtonItem alloc] initWithTitle:@"Button1" style:UIBarButtonItemStyleBordered target:self action:@selector(button1Action)];
UIBarButtonItem* button2 = [[UIBarButtonItem alloc] initWithTitle:@"Button2" style:UIBarButtonItemStyleBordered target:self action:@selector(button2Action)];
UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[myToolbar setItems:[NSArray arrayWithObjects:button1, flexibleSpace, button2, nil]];
于 2010-05-10T23:19:51.377 に答える
5

UIBarButtonItem 提案の幅を無視します。これは Apple が推奨する正しい方法ではなく、さらにアイコンを追加したい場合には機能しません。

正しいアプローチは、各ボタンの間に「柔軟なスペース」(技術的には別のボタン!) を追加することです。これは Interface Builder で確認できますが、必要に応じてコードに直接追加することもできます。

于 2010-05-10T23:23:44.327 に答える
2

うん。UIBarButtonItemを使用して-initWithBarButtonSystemItem:メソッドを使用してを作成しUIBarButtonSystemItemFlexibleSpace、実際の各ツールバー項目の間に挿入します。例えば:

UIBarButtonItem *flexSpace = [[UIBarButton alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace];
myToolbar.items = [NSArray arrayWithObjects:buttonOne,flexSpace,buttonTwo,flexSpace,buttonThree,nil];
[flexSpace release];
于 2010-05-10T23:20:48.167 に答える