在iOS 6上,为富文本字符串设置NSForegroundColorAttributeName会将文本向下移动。

4

我在我的iOS应用程序中使用属性字符串来为文本添加样式:

NSDictionary *titleAttributes = @{NSFontAttributeName:              [UIFont fontWithName:@"Raleway" size:12],
                                  NSForegroundColorAttributeName:   [UIColor lightGreyTextColor]};

NSMutableAttributedString *attributedTitle = [[NSMutableAttributedString alloc] initWithString:title attributes:titleAttributes];

问题是在iOS 6中,文本不再垂直居中于UILabel。在iOS 7上是正常的。
我发现当我删除NSForegroundColorAttributeName属性时,它就可以正确地居中,但文本是黑色的。
有人知道如何解决吗?这是iOS的一个bug还是我漏了什么?
3个回答

1
尝试使用UITextAttributeTextColor代替NSForegroundColorAttributeName。似乎是与这个问题相同的问题。

UITextAttributeTextColor已被弃用。 - j2emanue

0
我曾经遇到过类似的问题。确保在为标签添加属性后,将居中文本的代码行放置在其后面。

-1
请使用以下代码:
if (SYSTEM_VERSION_IS_LESS_THAN(@"7.0")) {
    [self.navigationBar setTitleVerticalPositionAdjustment:2 forBarMetrics:UIBarMetricsDefault];
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接