I have a mutable attributed string without NSStrikethroughStyleAttributeName attribute like this:
NSMutableAttributedString *str1 = [[NSMutableAttributedString alloc] initWithString:@"aaaa" attributes:@{NSStrikethroughStyleAttributeName:[NSNumber numberWithInteger:NSUnderlineStyleSingle]}];
and another mutable attributed string with NSStrikethroughStyleAttributeName attribute like this:
NSMutableAttributedString *str2 = [[NSMutableAttributedString alloc] initWithString:@"bbbb"];
and a whole string containing two strings above:
NSMutableAttributedString *labelString = [[NSMutableAttributedString alloc] init];
[labelString appendAttributedString:str1];
[labelString appendAttributedString:str2];
when I attach the whole string to a UILabel:
_label.attributedText = labelString;
It both display well in iOS7 and iOS8, like this:
aaaabbbb
But when I exchange their positions:
[labelString appendAttributedString:str2];
[labelString appendAttributedString:str1];
It display correctly in iOS7 but not correctly in iOS8
ios7: bbbbaaaa ios8: bbbbaaaa
It seems that in iOS8, UILabel doesn't render the strikethrough correctly if the first character in the attributed string is not strikethroughed. I think this is a bug in iOS8, is there anyone who encounter the same problem with me?