在属性字符串上设置NSForegroundColorAttributeName会在iOS 6上向下移动文本

时间:2013-10-24 09:10:55

标签: ios ios6 uilabel nsattributedstring nsmutableattributedstring

我在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中的错误还是我错过了什么?

3 个答案:

答案 0 :(得分:1)

尝试使用UITextAttributeTextColor代替NSForegroundColorAttributeName

似乎是同一个问题,如this question

答案 1 :(得分:0)

我有类似的问题。在将属性添加到标签

后,请确保放置使文本居中的代码行

答案 2 :(得分:-1)

使用此代码:

if (SYSTEM_VERSION_IS_LESS_THAN(@"7.0")) {
    [self.navigationBar setTitleVerticalPositionAdjustment:2 forBarMetrics:UIBarMetricsDefault];
}