我有一个可变的属性字符串,不含有NSStrikethroughStyleAttributeName属性,就像这样:
当我将整个字符串附加到UILabel时:
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中都能很好地显示,如下所示:
aaaabbbb
但是当我交换它们的位置时:
[labelString appendAttributedString:str2];
[labelString appendAttributedString:str1];
在iOS7中显示正确,但在iOS8中显示不正确。
ios7: bbbbaaaa ios8: bbbbaaaa
在iOS8中,似乎UILabel无法正确呈现删除线,如果属性字符串中的第一个字符没有删除线,则会出现问题。我认为这是iOS8中的一个错误,有没有遇到相同问题的人?