2011-03-08 57 views
4

我想在我的導航欄中添加一個自定義按鈕(右側)。看不到我的導航欄自定義按鈕,但它是可點擊的

我在我的「viewDidLoad中」功能下面的代碼:

UIButton *audioBtn = [[UIButton alloc] init]; 
[audioBtn setTitle:@"Play" forState:UIControlStateNormal]; 

UIImage *buttonImage = [UIImage imageNamed:@"play.png"]; 
[audioBtn setBackgroundImage:buttonImage forState:UIControlStateNormal]; 

[audioBtn addTarget:self action:@selector(toggleAudioPlayback:) forControlEvents:UIControlEventTouchUpInside]; 

UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithCustomView:audioBtn]; 
self.navigationItem.rightBarButtonItem = button; 

[audioBtn release]; 
[button release]; 

我看不到我的導航欄上的按鈕,但如果我點擊右側(其中按鈕應該是),它會觸發函數「toggleAudioPlayback」,所以唯一的問題是我沒有看到按鈕!

我試着用不同的圖像,設置背景顏色,實在不行......

順便說一句,我用這個像其他地方在代碼中,我看到它(在一個自定義按鈕,但不在導航欄中)。

請幫幫我!

回答

2

讓你的生活更輕鬆,而不是customView只使用一個的UIBarButtonItem具有自定義圖像:

UIBarButtonItem *audioBtn = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"play.png"] style:UIBarButtonItemStylePlain target:self action:@selector(toggleAudioPlayback:)]; 
    self.navigationItem.rightBarButtonItem = audioBtn; 
    [audioBtn release]; 

UPDATE

既然你已經表明你希望你的按鈕,沒有一個邊框,那麼你將需要使用CustomView畢竟,但我已經修改你的代碼,使其工作(關鍵的區別是幀的分配,它被設置爲圖像的大小,但你可以將其設置爲自定義大小有中心的圖像):

UIButton *audioBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
UIImage *playImg = [UIImage imageNamed:@"play.png"]; 
[audioButton setBackgroundImage:playImg forState:UIControlStateNormal]; 
[audioButton setBackgroundImage:playImg forState:UIControlStateHighlighted]; 
audioBtn.frame = CGRectMake(0,0,playImg.size.width,playImg.size.height); 
[audioBtn addTarget:self action:@selector(toggleAudioPlayback:) forControlEvents:UIControlEventTouchUpInside]; 
UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithCustomView:audioBtn]; 
self.navigationItem.rightBarButtonItem = button; 
[audioBtn release]; 
[button release]; 
+0

它的工作原理,但有按鈕的邊框。我沒有找到如何刪除邊框。 – Tiois 2011-03-08 01:07:42

+0

@Tiois我已更新我的回答 – theChrisKent 2011-03-08 01:22:05

+0

謝謝,它的工作原理! – Tiois 2011-03-08 01:31:37

0

而不是[[UIButton alloc] init]嘗試在UIButton上的+buttonWithType:方法。

+0

不幸的是,我還沒有看到該按鈕... – Tiois 2011-03-08 01:03:43