2012-08-13 52 views
1

因此增加的項目時,導航欄,但這個工程時,我將它添加到通過界面生成器底欄設置工具欄,背景圖像沒有按沒有出現。可以設置背景圖片的UIBarButtonItem在導航欄,但不是底部的工具欄

UIBarButtonItem *resetButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"Reset" style:UIBarButtonItemStylePlain target:self action:@selector(resetCriteria:)]; 
UIImage *img = [UIImage imageNamed:@"someImage.png"]; 
    img = [img stretchableImageWithLeftCapWidth:5 topCapHeight:20]; 
    [resetButtonItem setBackgroundImage:img forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 

self.toolbarItems = [NSArray arrayWithObjects: resetButtonItem, nil]; 

不僅背景沒有出現,沒有任何其他行爲的工作,以及(但添加這些barbutton項目的導航欄時,他們工作得很好)

+0

「經由IB」的評論是worrysome - 你有上面的代碼,但它能夠通過IB加入?在任何情況下,如果你可以打開一個簡單的演示應用程序,添加兩個圖像,以顯示問題 - 並將其放在DropBox上,很高興看一看。 – 2012-08-14 00:55:56

回答

2

你應該試試下面的方法做一樣。

設置的UIBarButtonItem中的自定義視圖。

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; 
btn.frame = CGRectMake(0, 0, 30, 30); 
[btn setImage:[UIImage imageNamed:@"someImage.png"] forState:UIControlStateNormal]; 
[btn addTarget:self action:@selector(resetCriteria:) forControlEvents:UIControlEventTouchUpInside]; 

UIBarButtonItem *Item = [[UIBarButtonItem alloc] initWithCustomView:btn]; 
self.toolbarItems = [NSArray arrayWithObject:Item]; 
[Item release]; 

我們可以設置用的UIBarButtonItem初始化CustomView方法的任何觀點。 我們可以設置ImageView。但ImageView不處理UIControl事件。