2012-01-19 63 views
1

我將兩個UIBarButtonItems添加到UINavigationBar中。第一個是系統項目 - 搜索按鈕 - 並且效果很好。第二個是自定義圖像(一個小白色的Glyphish圖標),但是當我添加這個圖像時,圖像變灰。該按鈕是完全可點擊的,只是灰色。有沒有人有一個想法,爲什麼這可能會發生?UIBarButtonItem變灰

enter image description here

我相信阿爾法水平是正確的。如果我把同樣的圖標上UIToolbar(而不是UINavigationBar的)一個的UIBarButtonItem這是怎麼出現:

enter image description here

+0

沒有得到它。也許你可以添加一張圖片。 (儘管從未接觸過i-phone開發)。 –

+0

感謝Olof的建議。我添加了一張照片。 – Rob

+0

如果這是一個自定義圖標,你可以再次檢查alpha值? – DAS

回答

2

然後,嘗試清潔目標。

SHIFT + CMD + K

+0

謝謝達爾文,它做到了!我正在寫一個:) – Rob

+0

是的。 :)前段時間和'UIImageView'有同樣的問題。請參閱:有時是__details__:「我早些時候使用過灰色圖標。」 – DAS

0

看起來這是一個突出的狀態?如果您以編程方式創建此按鈕,則可能需要檢查其是否爲UIControlState == UIControlStateHighlighted

0

您正在使用工具欄類型圖標圖像。工具欄和TabBars上的Glyphish圖標只使用alpha圖層。但是,如果你正在建立一個按鈕,你必須使用一個標準的圖像。在任何圖像編輯器中打開圖像,並使用所需的顏色作爲按鈕,並在需要的位置使用Alpha圖層的透明值。它在某種程度上與由tabbars中的alpha層組成的圖像相反。

+0

它似乎現在工作,沒有任何修改。我不得不使用白色圖標而不是灰色,但不知何故Xcode保留了舊圖標。謝謝你的想法! – Rob

0

我以前一直在使用灰色圖標。當我意識到這是錯誤的顏色時,我用「-grey」在文件後面加了一個白色圖標,它接管了灰色圖標的名稱。但不知何故Xcode仍在檢索舊圖標,儘管它的名稱在項目中更改(並因此在Finder中)。可能緩存?對我來說這是個謎!

感謝您輸入的每個人。

0

試試這個強制Reload按鈕。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if([sender isKindOfClass:UIBarButtonItem.class]) { 
     UIBarButtonItem *button = sender; 
     self.navigationItem.rightBarButtonItem = nil; 
     self.navigationItem.rightBarButtonItem = button; 
    } 
}