2

我有一个通知中心小部件,它有一个带有表格视图单元格的表格视图。在单元格中,我有一个标签,我想用文本+图像显示。作为 NSTextAttachment 包含的图像。我在应用程序中有以下代码:

NSTextAttachment *attachment = [NSTextAttachment new];
attachment.image = [UIImage imageWithData:item.image];
NSAttributedString *itemImage = [NSAttributedString attributedStringWithAttachment:attachment];
NSAttributedString *itemName = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@" %@", item.name]];
NSMutableAttributedString *itemString = [[NSMutableAttributedString alloc] initWithAttributedString:itemImage];
[itemString appendAttributedString:itemName];
cell.nameLabel.attributedText = itemString;

此代码在应用程序内部有效,但我也尝试在我的小部件(以及 TodayViewController)中使用。在小部件中显示时,标签上不会显示任何图像。如果我在运行此代码时停止,我可以看到 attachment.image 已正确设置。我究竟做错了什么?谢谢!

4

2 回答 2

1

后来事实证明,在我设置之后,我cell.nameLabel.attributedText = itemString;后来设置了 cell.nameLabel.text = itemString,所以它覆盖了属性字符串

于 2015-01-02T20:29:58.370 回答
0

尝试改变

NSTextAttachment *attachment = [NSTextAttachment new];

NSTextAttachment *attachment = [NSTextAttachment alloc] initWithData:nil ofType:nil];

这可能与这篇文章中的问题相同:NSTextAttachment image not display on iOS 8 devices (with iOS7.1 sdk)

于 2014-12-31T20:55:16.860 回答