2013-07-02 318 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