美文网首页iOS常用问题基础应用
iOS使用NSTextAttachment添加图片,图片模糊

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

作者: 爱技术的田同学 | 来源:发表于2020-10-13 17:29 被阅读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 {

        //设置布局范围

        }

    }

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

    相关文章

      网友评论

        本文标题:iOS使用NSTextAttachment添加图片,图片模糊

        本文链接:https://www.haomeiwen.com/subject/nlavpktx.html