我们通常从相册或相机中获取图片,然后通过NSTextAttachment添加到富文本中。
在富文本中添加图片,实现代码如下:
// Add the image as an attachme.
let textAttachment = NSTextAttachment()
textAttachment.image = image
textAttachment.bounds = CGRect(origin: CGPoint.zero, size: image.size)
let textAttachmentString = NSMutableAttributedString(attributedString: NSAttributedString(attachment: textAttachment))
编辑好的富文本内容,以blob类型缓存到sqlite数据库中,进行数据缓存。
至此一切顺利进行,现在从缓存的数据中加载富文本,并将富文本内容在UITextView中显示,文本内容正常,图片却显示巨大。
下面我们先po上两张图片:
1、在UITextView中添加图片

2、从缓存中取出图片(图片非常大仅截取部分)

第一张图是通过NSTextAttachment添加图片在UITextView显示的正常效果,第二张图是从缓存中取出数据的显示效果。
通过以上的图片对比,我们能看到从数据缓存中获取的内容中是包含图片的,那么是什么导致图片不能正常显示呢,通过对代码的进一步调试发现attachment的bounds丢了,而attachment.bounds就是记录图片位置和图片宽高属性的。
log截图:attachment.bounds为0
我们通常从相册或相机中获取图片,然后通过NSTextAttachment添加到富文本中。
在富文本中添加图片,实现代码如下:
// Add the image as an attachme.
let textAttachment = NSTextAttachment()
textAttachment.image = image
textAttachment.bounds = CGRect(origin: CGPoint.zero, size: image.size)
let textAttachmentString = NSMutableAttributedString(attributedString: NSAttributedString(attachment: textAttachment))
编辑好的富文本内容,以blob类型缓存到sqlite数据库中,进行数据缓存。
至此一切顺利进行,现在从缓存的数据中加载富文本,并将富文本内容在UITextView中显示,文本内容正常,图片却显示巨大。
下面我们先po上两张图片:
1、在UITextView中添加图片

2、从缓存中取出图片(图片非常大仅截取部分)

第一张图是通过NSTextAttachment添加图片在UITextView显示的正常效果,第二张图是从缓存中取出数据的显示效果。
通过以上的图片对比,我们能看到从数据缓存中获取的内容中是包含图片的,那么是什么导致图片不能正常显示呢,通过对代码的进一步调试发现attachment的bounds丢了,而attachment.bounds就是记录图片位置和图片宽高属性的。
log截图:attachment.bounds为0
我们通常从相册或相机中获取图片,然后通过NSTextAttachment添加到富文本中。
在富文本中添加图片,实现代码如下:
// Add the image as an attachme.
let textAttachment = NSTextAttachment()
textAttachment.image = image
textAttachment.bounds = CGRect(origin: CGPoint.zero, size: image.size)
let textAttachmentString = NSMutableAttributedString(attributedString: NSAttributedString(attachment: textAttachment))
编辑好的富文本内容,以blob类型缓存到sqlite数据库中,进行数据缓存。
至此一切顺利进行,现在从缓存的数据中加载富文本,并将富文本内容在UITextView中显示,文本内容正常,图片却显示巨大。
下面我们先po上两张图片:
1、在UITextView中添加图片

2、从缓存中取出图片(图片非常大仅截取部分)

第一张图是通过NSTextAttachment添加图片在UITextView显示的正常效果,第二张图是从缓存中取出数据的显示效果。
通过以上的图片对比,我们能看到从数据缓存中获取的内容中是包含图片的,那么是什么导致图片不能正常显示呢,通过对代码的进一步调试发现attachment的bounds丢了,而attachment.bounds就是记录图片位置和图片宽高属性的。
log截图:attachment.bounds为0