自定义导航栏后退栏按钮

时间:2013-07-02 14:14:27

标签: ios uinavigationbar uibarbuttonitem

我使用下面的代码来自定义backBarButtonItem,因为我需要更改文本颜色。

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

颜色发生了变化,但文字字体看起来很奇怪。看,边缘处的“背面”并不清晰。 我不知道为什么会这样。有没有人对此有任何想法? enter image description here

1 个答案:

答案 0 :(得分: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',它变得不可见。另一种方法是改变偏移量,使其看起来像向下而不是向上投射;或者将颜色改变为与黑色明显不同的颜色,以便您可以区分文本和阴影。