ios - NSMutableAttributedString 的属性 NSStrikethroughStyleAttributeName 在 iOS8 中不能正常工作

标签 ios ios8 nsattributedstring strikethrough nsmutableattributedstring

我有一个不带 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 中都显示良好,如下所示:

aaaabbbb

但是当我交换他们的位置时:

[labelString appendAttributedString:str2];
[labelString appendAttributedString:str1];

在iOS7中显示正确,在iOS8中显示不正确

ios7: bbbbaaaa ios8: bbbbaaaa

在 iOS8 中,如果属性字符串中的第一个字符未被删除线,UILabel 似乎无法正确呈现删除线。 我认为这是 iOS8 中的一个错误,有没有人遇到与我相同的问题?

最佳答案

NSMutableAttributedString *str2 = [[NSMutableAttributedString alloc] initWithString:@"bbbb" attributes:@{NSStrikethroughStyleAttributeName:[NSNumber numberWithInteger:NSUnderlineStyleNone]}];

应该有帮助

关于ios - NSMutableAttributedString 的属性 NSStrikethroughStyleAttributeName 在 iOS8 中不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25956183/

相关文章:

ios - 裁剪像素缓冲区

iOS 8 在 UITableViewCell 边界之外绘制

ios - VectorKit MapKit 堆栈溢出崩溃

iOS8如何设置TabBarItem图片

objective-c - 存储和检索NSAttributedString

ios - 将 NSString 的子字符串更改为粗体

swift - 从 NSAttributedString 中提取表

ios - 带有文本编辑字段的 UIView

objective-c - UILocalizedIndexedCollat​​ion 不显示中文字符

ios - 核心数据 : Automatically Trim String Properties