iOS使用NSTextAttachment新增圖片,圖片模糊
阿新 • • 發佈:2020-10-13
最近在忙的專案中,需要處理富文字的相關內容,產品需求並不複雜,所以想著用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 { //設定佈局範圍 } }
至此新增圖片顯示的坑終於填上了。