3

2 つの UIBarButtonItems を持つ UIToolbar を作成する必要があります。1 番目のボタンは中央に配置し、2 番目の項目は右揃えにする必要があります。

私は柔軟な間隔を理解して使用しており、UIToolbar 全体でボタンのバランスをとる必要がある場合にうまく機能しますが、ボタンが 2 つしかないため、中央のボタンを完全に中央に配置することはできません。view.toolbarItems 配列を初期化しました

NSArray *items = [[NSArray alloc] initWithObjects:fixed, flex, center_button, flex, right_button, nil];

そして、 fixed.width = right_button.width を設定します ... それでも、center_button が完全に中央に配置されることはありません。

4

3 に答える 3

9

最近同じ問題が発生し、一種の偽の UIBarButtonItem を作成して解決しました。配置を正しくするための鍵は、possibleTitles左右両方のバー ボタンのプロパティを同じ値に設定することでした。次に例を示します。

[right_button setPossibleTitles:[NSSet setWithObject:@"Abc"]];

// Create this fake (plain) button item on the left, to correct the alignment.
UIBarButtonItem *fake = [[[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease];
[fake setEnabled:NO];
[fake setPossibleTitles:right_button.possibleTitles];

// The array for your toolbar items
NSArray *items = [[NSArray alloc] initWithObjects:fake, flex, center_button, flex, right_button, nil];

遅い答え...これがまだ役立つことを願っています。

于 2011-06-07T04:16:46.607 に答える
1

問題は、UIBarButtonItem の width プロパティが常にゼロのように見えることです。(これは、システムが「適切な」幅にするためのフラグとしてゼロが使用されているためだと思います。フレックス スペースも同じ方法です。) 必要な場合は、右ボタンで画像を使用することです (その方法、その幅がどうなるか知っています)、固定スペースを、右ボタンと同じサイズの透明な画像を使用する「左ボタン」に置き換えます。

于 2010-09-27T20:07:27.103 に答える
0

ツールバーが画面の全幅ではないか、center_button がフレームの中央に配置されていないようです。設定してみましたcenter_button.imageInsetsか?

于 2010-05-19T05:59:20.257 に答える