0

ビューの上部にがUIToolbarあり、アニメーションでサイズを変更する必要があります。ツールバーには次のものが含まれます。

  • 使用中のUIBarButtonItemシステム項目UIBarButtonSystemItemAdd(「+」ボタン)
  • UIBarButtonItemカスタムビュー(タイトル)を使用する
  • UIBarButtonItemスタイルを使用する(UIBarButtonItemStyleBordered[編集]ボタン)

これらのボタンは、それぞれの間にスペーサーを使用して追加しています。これにより、タイトルが中央に表示されます。

    [toolbar setItems: @[addButton, spacer, titleButton, spacer, editButton] animated:NO];

オリジナルサイズ

ツールバーのサイズは適切に変更され、2つのボタンはそれらの位置を外側の端に固定したままにします。ただし、タイトルボタンはツールバーの中央に留まりません。代わりに、右端を同じ場所に固定し、左側にスペースを作成しているように見えます。アニメーション中、これは右にスライドしているような印象を与えます。

拡張サイズ

明確にするために、タイトルバーの幅を同じに保ちたいのですが、ツールバーが大きくなるにつれてタイトルバーが拡大するのは望ましくありません。ただし、ツールバーの中央にタイトルを表示する必要があります。

aUIBarButtonItemはではないのでUIView、機能を使用できません(?)autoresizingmask

タイトルをツールバーの中央に保持するにはどうすればよいですか?

追加情報

これは、[追加]ボタンと[編集]ボタンの幅が異なるためである可能性があります。タイトルのみを追加すると(両側にスペーサーがあります)、動作は正しくなります。

4

2 に答える 2

0

残念ですが、カスタムボタンをバーボタンアイテムとして使用し、[追加/編集]ボタンの画像を使用することもできます。どこでもボタンフレームを設定できるように。そのため、ボタンはほとんどの場所に配置されません。

UIButton * addButton = [[UIButton alloc] init];
[addButton setBackgroundImage:<AddimageName> forState:UIControlStateNormal];
UIBarButtonItem * addItem = [[UIBarButtonItem alloc] initWithCustomView:addButton];
于 2012-10-10T19:30:52.573 に答える
0

重要な詳細を省略していたことがわかりました。width編集ボタンのを手動で50に設定しています。

これを削除すると、サイズ変更は期待どおりに機能します。ただし、編集ボタンのサイズを制御できなくなります。編集ボタンは50に設定して、ナビゲーションバーのサイズと一致させます。

実行可能な解決策を見つけました。[編集]ボタンの幅を50に保ちます。「+」ボタンの直後に固定セパレーターを追加し、その幅を18(50-「+」ボタンの幅)に設定します。これにより、タイトルの両側のアイテムのバランスがとれます。

于 2012-10-10T20:02:42.727 に答える