iOS使用NSTextAttachment添加图片,图片模糊

最近在忙的项目中,须要处理富文本的相关内容,产品需求并不复杂,因此想着用TextKit处理,顺便学习一下,没想到直接掉坑。在此记录一下(都是血泪史),顺便为有须要的小伙伴提供参考。swift

// Add the image as an attachment.
let textAttachment = NSTextAttachment()
textAttachment.image = image
textAttachment.bounds = CGRect(origin: CGPoint.zero, size: image.size)
let textAttachmentString = NSMutableAttributedString(attributedString: NSAttributedString(attachment: textAttachment)

经过以上代码能够实如今UITextView中添加image,一般咱们添加从相册或相机拍照中获取的图片很大,在UITextView中添加图片会将图片等比缩放,把缩放好的图片给textAttachment.image,而后神奇的事情发生了,图片是添加成功了,仔细一看被裁减掉了一部分,并且图片也不清晰。ide

想着是否是本身的缩放方法写的有问题,因而从新建立了一个项目,用UIImageView验证彻底没问题。后来在stackoverflow上看到别人解答的另外一个相关问题,获得了启发,须要本身override attachmentBounds方法,根据须要设置布局范围给布局管理器。布局

class MyAttachment: NSTextAttachment {
    override func attachmentBounds(for textContainer: NSTextContainer?, proposedLineFragment lineFrag: CGRect, glyphPosition position: CGPoint, characterIndex charIndex: Int) -> CGRect {
    //设置布局范围
    }
}

至此添加图片显示的坑终于填上了。学习

相关文章
相关标签/搜索