1

アプリにナビゲーション コントローラーがあります。ビューのナビゲーション バーに UIBarButtonItem を追加しています。ナビゲーション バーに追加したときの UIBarButtonItem のデフォルトの幅と高さは 44*30 です。ナビゲーション バーにサイズ 30*30 の UIBarButtonItem が必要です。どうすればこれを達成できますか?UIBarbutton の width プロパティを変更しようとしましたが、調べているうちに、ツールバーに UIBarButtons を挿入してデフォルトの幅を変更する場合にのみ可能であり、ナビゲーション バーに挿入する場合には不可能であることがわかりました。これを達成する方法はありますか?

私の基本的なニーズは、ナビゲーション バーの左側に 2 つの正方形 (30*30)のバー ボタンが必要であり、ナビゲーション バーの右側に 1 つあることです。はい、そこにシンプルなボタンを挿入して、バーボタンの代わりにフレームを設定できます。しかし、バーボタンの幅を変更することは可能ですか?もしそうなら、方法は何ですか?

4

2 に答える 2

1

必要に応じて1つのUIButtonを作成し、左右のバーボタンとして割り当てます。必要に応じてフレームを変更できます。右ボタンと同じ方法で変更できます。

UIButton *mybutton = [UIButton buttonWithType: UIButtonTypeCustom];
[mybutton setImage:[UIImage imageNamed:@"anyimage.png"]];
  [mybutton setFrame:CGRectMake(0,0,30,30)];
[mybutton addTarget:self action:@selector(onclick:) forControlEvents: UIControlEventTouchUpInside];
UIBarButtonItem *customItem = [[UIBarButtonItem alloc] initWithCustomView: mybutton];
[self.navigationItem setLeftBarButtonItem:customItem];

更新:-あなたのボーダー スタイルに従ってこれを使用してください。

 [self.navigationItem setRightBarButtonItem:[[UIBarButtonItem alloc]initWithTitle:@"Test" style:UIBarButtonItemStyleBordered target:self action:@selector(test:)]];
于 2012-08-21T07:05:54.913 に答える
0
UIButton *desiredBtn = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 30, 30)];
UIBarButtonItem *aBarButtonItem = [[UIBarButtonItem alloc]  initWithCustomView:desiredBtn];

次に、このバーボタンをナビゲーションバーに追加します

self.navigationItem.rightBarButtonItem = aBarButtonItem;
于 2012-08-21T07:11:02.043 に答える