2013-07-11 150 views
-8

我相信我已經嘗試過所有其他的SO解決方案。更改導航欄後退按鈕的背景圖片

我使用下面的代碼來更改我的導航欄的背景圖片backbutton

UIImage *image = [UIImage imageNamed:@"standard_bt.png"]; 
     [[UIBarButtonItem appearance] setBackButtonBackgroundImage:image forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 

這使得按鈕顯示爲:

enter image description here

沒有這個代碼,它似乎是這樣的:

enter image description here

現在,我想背景圖片來自第一張圖片,帶後退形狀第二張圖片

注:我想做到這一點,而無需修改名爲「standard_bt.png」

如何做到這一點的形象呢?那可能嗎?

回答

1

你已經做了正確的事情。

iOS SDK不提供方便的方法來根據標準後扣的形狀更改UIImage對象的形狀

這就是說,答案是:不,你不能實現一個定製的形狀後退而不改變按鈕的背景圖像本身。

1

用您的按鈕圖像創建一個自定義按鈕。並添加到左側的導航欄。

它就像下面

UIImage *menuImage = [UIImage imageNamed:@"bar.png"]; 
    UIButton *menuButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, menuImage.size.width, menuImage.size.height)]; 
    menuButton.backgroundColor = [UIColor colorWithPatternImage:menuImage]; 
    UIBarButtonItem *customBarButtonItem_left = [[UIBarButtonItem alloc] initWithCustomView:menuButton]; 
    [menuButton addTarget:self action:@selector(CallBack:) forControlEvents:UIControlEventTouchDown]; 
    self.navigationItem.leftBarButtonItem = customBarButtonItem_left;