微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

cocoa-touch – 设置属性时NSTextAttachment图像消失

我在将属性应用于NSMutableAttributedStrings时遇到了麻烦.如果他们有图像附件,则在添加属性时图像会消失.

获取包含文本附件的NSMutableAttributedString,如下所示:

let myString = NSMutableAttributedString(string: "Hello\n\n")
let attachment = NSTextAttachment()
attachment.image = image    // some UIImage
let attachmentString = NSAttributedString(attachment: attachment)
myString.appendAttributedString(attachmentString)

如果我尝试将属性应用于字符串,则会丢失附件:

let bodyFont = UIFont.preferredFontForTextStyle(UIFontTextStyleBody)
myString.setAttributes([NSFontAttributeName: bodyFont],range: NSMakeRange(0,myString.length))

字符串现在显示为正确的字体但附件已消失.如果我使范围myString.length – 1,附件仍然存在,所以我可以用更多的工作(可能通过查找NSTextAttachmentCharacter)踩到任何附件.我想知道是否有更简单的东西我不知道.

解决方法

解决方案是不使用setAttributes:而是addAttributes:因为它会重置最初在字符串上设置的属性.从文本附件生成属性字符串时,它会设置显示图像所需的一些初始属性.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐