2011-08-05 2 views
8

コード内のUIBarButtonItemのサイズを変更するにはどうすればよいですか?ご協力いただきありがとうございます!コード内のUIBarButtonItemのサイズを変更する方法

+0

どのようなタイプのバーボタンアイテムを作成していますか?システムのアイコンやテキスト? –

+0

それを削除して新しいフレームサイズの新しいbarbuttonitemを割り当てないのはなぜですか? – Legolas

+0

固定スペースバーボタンアイテムです。私はレゴラスが提案したことをやろうとしますが、barButton.something(contentSize?)= CGRect?(width、height)と同様のものを使って現在のサイズを変更しようとします。ありがとう! –

答えて

15

UIViewと同じようにUIBarButtonItemのサイズを変更することはできません。あなたができることは、そののプロパティを変更することです。

UIBarButtonItem *b; 
// Initialize and such ... 
b.width = 150.0; 

これは固定スペースバーボタンアイテムで有効です。

+0

このノート:I [toolbar setNeedsLayout]を実行しなければならなかったか、そうでなければボタンを隠すサイドにドロワーが表示されたコードでこれを行うと何も起こりませんでした。 – Kalle

+1

なぜ私はxibでこれを行うことができないのですか? –

+2

「うまくいくはずですか?あなたが間違いなく私のために働かなかったので、これをしましたか? –

1

Appleのドキュメントから0

UIBarButtonItem* btn = // init 
btn.width = .0f; 

にそれを設定することにより、合わせてボタンのサイズを変更するためにUIBarButtonItemのwidthプロパティを使用します。 「の値が0.0であるか負である場合は、アイテムを組み合わせの幅を設定しますイメージとタイトルを合わせてください」 https://developer.apple.com/library/ios/documentation/uikit/reference/UIBarButtonItem_Class/Reference/Reference.html#//apple_ref/occ/instp/UIBarButtonItem/width

3

UIBarButtonItemでカスタムイメージを使用する場合は、このコードを使用できます。

DoneButton = [[UIBarButtonItem alloc] initWithTitle:[Settings getConfigurableLabel:GENERAL_DONE] style:UIBarButtonItemStyleBordered target:self action:@selector(btnWorkOrderDoneClicked)]; 
UIButton *cameraButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 20.0f, 20.0f)]; 
UIImage *cameraImage = [UIImage imageNamed:@"cameraicon_white.png"]; 
[cameraButton setBackgroundImage:cameraImage forState:UIControlStateNormal]; 
[cameraButton addTarget:self action:@selector(openCamera) forControlEvents:UIControlEventTouchUpInside]; 
    UIBarButtonItem* cameraButtonItem = [[UIBarButtonItem alloc] initWithCustomView:cameraButton]; 
関連する問題