更新:我刚刚在运行 iOS 7 的实际 iPhone 5 上遇到了这个问题。很快就会提供更多信息。
我想我在 iOS 7 模拟器中发现了一个错误,其中没有出现 NSAttributedString。如果其他人可以对此进行测试以确认这是一个错误,那就太好了,然后我将向 Apple 提交错误。
问题似乎是对 NSAttributedString 使用 NSUnderlineStyleAttributeName 和 NSParagraphStyleAttributeName 的组合。
以下是重现的步骤:
1) 在 Xcode 5 中创建一个新的“单一 View 应用程序”。随便叫。
2) 在 ViewController.m 中,将 viewDidLoad 方法替换为:
- (void)viewDidLoad
{
[super viewDidLoad];
NSMutableParagraphStyle* paragraph = [[NSMutableParagraphStyle alloc] init];
paragraph.alignment = NSTextAlignmentCenter;
NSAttributedString* attrStr = [[NSAttributedString alloc] initWithString:@"Lorem ipsum dolor sit" attributes:
@{NSUnderlineStyleAttributeName:@1,
NSParagraphStyleAttributeName:paragraph}];
UILabel* myLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 30, 0, 0)];
myLabel.backgroundColor = [UIColor greenColor];
myLabel.attributedText = attrStr;
[myLabel sizeToFit];
[self.view addSubview:myLabel];
}
3) 在 iOS 7 设备上运行,然后在 iOS 7 模拟器中再次运行。
4) 最后,将部署目标设置为 iOS 6 并在 iOS 6 模拟器上运行它。
结果应该如下
截图:
iOS7 设备
iOS7模拟器
最佳答案
看来这不是模拟器错误,而是 iOS 7 错误,因为我现在已经能够在设备上重现它。我在这里创建了一个新问题:iOS 7 BUG - NSAttributedString does not appear
该错误似乎是使用 NSUnderlineStyleAttributeName 和 NSParagraphStyleAttributeName 作为 NSAttributedString 属性的组合。
关于ios-simulator - iOS 7 模拟器错误 - NSAttributedString 没有出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18994479/