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% 的时间发生这种情况。
4

1 回答 1

1

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

一开始我在 viewDidLoad 方法中设置字体大小。似乎在这种方法之后再次改变了字体大小。

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

现在文本显示正确。

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

于 2013-05-24T11:39:50.463 回答