我使用下面的代码来自定义backBarButtonItem,因为我需要更改文本颜色。
[[UIBarButtonItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor blackColor], UITextAttributeTextColor, nil] forState:UIControlStateNormal];
颜色发生了变化,但文字字体看起来很奇怪。看,边缘处的“背面”并不清晰。 我不知道为什么会这样。有没有人对此有任何想法?
答案 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',它变得不可见。另一种方法是改变偏移量,使其看起来像向下而不是向上投射;或者将颜色改变为与黑色明显不同的颜色,以便您可以区分文本和阴影。