我有一个没有 NSStrikethroughStyleAttributeName 属性的可变属性字符串,如下所示:
NSMutableAttributedString *str1 = [[NSMutableAttributedString alloc] initWithString:@"aaaa" attributes:@{NSStrikethroughStyleAttributeName:[NSNumber numberWithInteger:NSUnderlineStyleSingle]}];
和另一个具有 NSStrikethroughStyleAttributeName 属性的可变属性字符串,如下所示:
NSMutableAttributedString *str2 = [[NSMutableAttributedString alloc] initWithString:@"bbbb"];
以及包含上面两个字符串的整个字符串:
NSMutableAttributedString *labelString = [[NSMutableAttributedString alloc] init];
[labelString appendAttributedString:str1];
[labelString appendAttributedString:str2];
当我将整个字符串附加到 UILabel 时:
_label.attributedText = labelString;
它在 iOS7 和 iOS8 中都显示良好,如下所示:
啊啊啊bbbb
但是当我交换他们的位置时:
[labelString appendAttributedString:str2];
[labelString appendAttributedString:str1];
它在 iOS7 中正确显示,但在 iOS8 中显示不正确
ios7: bbbb啊啊啊 ios8: bbbbaaaa
似乎在 iOS8 中,如果属性字符串中的第一个字符没有删除线,则 UILabel 无法正确呈现删除线。我认为这是iOS8中的一个错误,有没有人和我遇到同样问题的人?