最近在忙的項目中,須要處理富文本的相關內容,產品需求並不複雜,因此想着用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 { //設置佈局範圍 } }
至此添加圖片顯示的坑終於填上了。學習