iOS常用问题基础应用

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

2020-10-13  本文已影响0人  爱技术的田同学

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

// 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,然后神奇的事情发生了,图片是添加成功了,仔细一看被裁减掉了一部分,而且图片也不清晰。

想着是不是自己的缩放方法写的有问题,于是重新创建了一个项目,用UIImageView验证完全没问题。后来在stackoverflow上看到别人解答的另一个相关问题,得到了启发,需要自己override attachmentBounds方法,根据需要设置布局范围给布局管理器。

class MyAttachment: NSTextAttachment {

    override func attachmentBounds(for textContainer: NSTextContainer?, proposedLineFragment lineFrag: CGRect, glyphPosition position: CGPoint, characterIndex charIndex: Int) -> CGRect {

    //设置布局范围

    }

}

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

上一篇下一篇

猜你喜欢

热点阅读