2013-07-24 277 views
0

當前我將UIBarButtonItem設置爲具有透明背景的40x40像素圖像。當我去的UIBarButtonItem設置爲這個形象,它產生以下結果:將UIBarButtonItem設置爲無背景圖像

enter image description here

我只想沒有綠色背景的傢伙的圖像。我應該如何去做這件事?

代碼我已經試過:

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"profile-barbutton.png"] style:UIBarButtonItemStylePlain target:self.navigationController action:@selector(myselector)]; 

也試過以下(以及初始化與initWithTitle吧:@ 「」 ......

工作,但選擇不再指向UINavigationController

以下代碼會產生異常[MasterViewController toggleMenu]:無法識別的選擇器,因爲選擇器在我的內部NavigationController類,它以前是用UIBarButtonItem引用的,但不再使用它。

 UIButton *profileBarButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40.0f, 40.0f)]; 
    [profileBarButton setImage:[UIImage imageNamed:@"profile-barbutton.png"] forState:UIControlStateNormal]; 
    [profileBarButton addTarget:self action:@selector(toggleMenu) forControlEvents:UIControlEventTouchUpInside]; 



    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:profileBarButton]; 

    [self.navigationItem.leftBarButtonItem setTarget:self.navigationController]; 
    [self.navigationItem.leftBarButtonItem setAction:@selector(toggleMenu)]; 

回答

1

您想要設置背景圖像,而不是圖像。試試這個:

[self.navigationItem.leftBarButtonItem setBackgroundImage:[UIImage imageNamed:@"profile-barbutton.png"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 
+0

看到我編輯的問題。我不認爲你的上述解決方案有效。 – Apollo

+0

你可以嘗試初始化沒有圖像的按鈕嗎? UIBarButtonItems不是UIView的子類,可能會有不同的行爲,所以你可以嘗試使用「initWithCustomView」並傳入一個具有自定義背景圖像的普通UIButton。 – Wilson

+0

工作,但我的選擇器不再有效。你介意看一下嗎?謝謝 – Apollo