0

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

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

颜色改变了,但文字字体看起来很奇怪。看,“背面”的边缘不清晰。我不知道为什么会这样。有人对此有任何想法吗? 在此处输入图像描述

4

1 回答 1

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

于 2013-07-02T14:26:30.493 回答