2012-05-05 127 views
1

我想爲每個導航項目(按鈕)(通用)設置背景圖像。如何更改導航項目(按鈕)的背景圖像?

這些圖像應該如何顯示?

是否有固定的尺寸或有可能創建重複的背景圖像?

如何以編程方式更改此背景圖像?

感謝對幫助

UPDATE:

我發現這個代碼改變這個按鈕的背景,但它沒有工作。

UIImage *barButton = [UIImage imageNamed:@"button_background.png"]; 
    [[UIBarButtonItem appearance] setBackgroundImage:barButton forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 

而且我不知道應該是哪個尺寸。

P.S.我想更改按鈕,就像你可以改變背景顏色的背景(self.navigation.controller.nvigationBar.tintColor ..)

回答

0

u需要創建自定義後退按鈕恐怕

檢查這個代碼出

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] 
           initWithImage:[UIImage imageNamed:@"yourImage.png"] 
             style:UIBarButtonItemStyleBordered 
             target:nil 
             action:nil]; 

self.navigationItem.backBarButtonItem = backButton; 
[backButton release]; 

讓我知道它的工作

乾杯

+0

請拿出看看更新的第一篇文章。 tnx – CroiOS

0

有關類別是什麼? 例如,你可以這樣做:

@interface UIBarButtonItem(JFAdditions) 

- (id)initWithTitle:(NSString *)title image:(UIImage*)img;//add target and action if need 

@end 

@implementation UIBarButtonItem(JFAdditions) 

- (id)initWithTitle:(NSString *)title image:(UIImage*)img 
{ 
     UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom]; 
     //add background image and text on button, target and action if need, also 
    self = [self initWithCustomView:btn]; 

    return self; 
} 
2

下面的代碼可能會解決你的問題

UIButton *backBtn  = [UIButton buttonWithType:UIButtonTypeCustom]; 
UIImage *backBtnImage = [UIImage imageNamed:@"button_background.png"] ; 
[backBtn setBackgroundImage:backBtnImage forState:UIControlStateNormal]; 
[backBtn addTarget:self action:@selector(goback) forControlEvents:UIControlEventTouchUpInside]; 
backBtn.frame = CGRectMake(0, 0, 54, 30); 
UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithCustomView:backBtn] ; 
self.navigationItem.leftBarButtonItem = cancelButton; 
+0

它的工作原理。你能告訴我,這個背景圖片的哪些尺寸應該是因爲某處有「短標題」,某處是「非常長titleeeee」?並告訴我,這是重複背景或固定的代碼,因爲如果是固定的,它不是通用的。 tnx – CroiOS

+1

sry但它不起作用,因爲我必須設置動作,我需要的是爲左側導航欄項目設置背景圖像。 – CroiOS

相關問題