2013-07-02 281 views
0

我用下面的代碼定製backBarButtonItem,因爲我需要改變文字顏色。自定義導航欄backBarButton

[[UIBarButtonItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor blackColor], UITextAttributeTextColor, nil] forState:UIControlStateNormal]; 

顏色改變,但文字字體看起來很奇怪。看到,「後面」並不清楚邊緣。 我不知道爲什麼會發生這種情況。有沒有人對此有任何想法? enter image description here

回答

2

文本具有陰影,這是從文本向上設置。 textlabel有一個shadowOffset值和一個shadowColor值。您可以抵消陰影不同,使其看起來更好或改變顏色[的UIColor clearColor] - 這兩者可能會有幫助。

NSMutableDictionary *attributes = [NSMutableDictionary dictionary]; 
[attributes setValue:[UIColor blackColor] forKey:UITextAttributeTextColor]; 
[attributes setValue:[UIColor clearColor] forKey:UITextAttributeTextShadowColor]; 
[[UIBarButtonItem appearance] setTitleTextAttributes:attributes forState:UIControlStateNormal]; 

用上面的代碼替換您的代碼會將文本顏色設置爲黑色,並清除陰影。這應該消除模糊。模糊實際上是由文本投射的陰影造成的。通過使陰影變成'clearColor',它變得不可見。另一種方法是改變偏移量,使其看起來像是向下而不是向上投下;或將顏色更改爲與黑色明顯不同的顏色,以便您可以區分文本和它的陰影。

+0

什麼?我不確定我是否明白你在說什麼,請你詳細說明一下以及如何解決問題。請更新您的答案,不要只是評論。 – Popeye

+0

我編輯我的答案有一個代碼片段和一些更多的細節。希望能澄清一些事情。 – Doc

+0

謝謝,改變顏色清除可以解決它。我很好奇如何改變陰影偏移量,你能告訴我,欣賞它。謝謝。 – zedzhao