NSMutableAttributedString字体大小意外更改

时间:2013-05-23 22:35:55

标签: ios objective-c ios6 ios6.1

我创建了一个NSMutableAttributedString对象,该对象由2个不同的NSMutableAttributedString对象组成:

NSMutableAttributedString * ob1 = [[NSMutableAttributedString alloc] initWithString:@"Headline"];
    [ob1 addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Arial" size:25.0] range:NSMakeRange(0,8)];
    [ob1 addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:1.0] range:NSMakeRange(0,8)];

NSMutableAttributedString * ob2 = [[NSMutableAttributedString alloc] initWithString:@"Test"];
[ob2 addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Arial" size:25.0] range:NSMakeRange(0,4)];
    [ob2 addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithRed:0.3 green:0.3 blue:0.0 alpha:1.0] range:NSMakeRange(0,4)];

[ob1 appendAttributedString:ob2];

self.aUITextViewObj.attributedText = ob1;

我的问题是:文本几乎每次都在UITextView中显示准确。 但有时它的字体大小会变大。这完全是偶然的,似乎没有规则。显示正确的相同文本下次显示得太大。 我想通了什么:

  • 问题未出现在模拟器中。
  • 在iPhone 4(iOS 6.1.3)上,大约有90%的时间出现。在iPhone 5(iOS 6.1.4)/ IPad(iOS 6.1.3)它发生在大约10%的时间。

1 个答案:

答案 0 :(得分:1)

我没有发现问题,但我找到了解决方案。

开始时我在viewDidLoad方法中设置字体大小。似乎有些东西在这个方法之后再次改变了字体大小。

但是在viewWillAppear方法之后没有触及字体大小。 所以我再次在这个方法中设置字体大小。

现在文字显示正确。

我希望这可以帮助其他人解决这个问题,但我仍然对这种情况发生的原因感兴趣。 可能是记忆问题。