0

現在、ストーリーボードで作成されたバー ボタンのあるナビゲーション バーがあります。

ノート

バーボタンの白い部分を取り除いて画像だけ残したいです。彼らはそれを行う方法ですか?

このコードを試してみると、バーボタンはありません:

UIButton *btn =  [UIButton buttonWithType:UIButtonTypeCustom];
[btn setBackgroundImage:[UIImage imageNamed:@"19-gear.png"] forState:UIControlStateNormal];
UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:btn];
self.navigationController.navigationBar.topItem.leftBarButtonItem = barButton;
4

2 に答える 2

2
IButton *btn =  [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(5,5,60,34);
[btn setBackgroundImage:[UIImage imageNamed:@"19-gear.png"] forState:UIControlStateNormal];
UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:btn];
self.navigationController.navigationBar.topItem.leftBarButtonItem = barButton;

ボタンのフレームを設定していないため、ナビゲーション バーに表示されません。

于 2013-08-17T05:00:42.227 に答える
1

CustomView を使用しないのはなぜですか?

のようにUIBarButtonItem initWithCustomView:

次に、ボタン (グラフィックを提供する必要があります) がどのように表示されるかを正確に制御できます。

クリックに応答するようにカスタム ビューを設定する方法について説明している関連する質問を次に示します。

編集:

エラーチェックに関しては、ちょっとやりすぎたコードがありますが、あなたの設定には何かが間違っていると確信しています。これを使えば、それが何であるかを知ることができるかもしれません。

UIButton *btn =  [UIButton buttonWithType:UIButtonTypeCustom];
if(btn)
{
    [btn setBackgroundImage:[UIImage imageNamed:@"19-gear.png"] forState:UIControlStateNormal];
    UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:btn];
    if(barButton)
    {

        if(self.navigationController)
        {
            if(self.navigationController.navigationBar)
            {
                if(self.navigationController.navigationBar.topItem)
                {
                    self.navigationController.navigationBar.topItem.leftBarButtonItem = barButton;
                } else {
                    NSLog( @"why is topItem null?");
                }
            } else {
                NSLog( @"navigationBar appears to be null");
            }
        } else {
            NSLog( @"navigationController is null");
        }
    } else {
        NSLog(@"did not create UIBarButtonItem");
    }
} else {
    NSLog( @"did not create UIButton");
}
于 2013-08-17T03:52:46.920 に答える