我处理与可编辑UITextView
相关的棘手情况。当用户在UITextView
上写某些字词时,我想用"标记替换这些字词"显示图标,单词(或单词)和另一个图标。
就像这张图片一样:
我在这里面临几个问题:
已经使用DTRichTextEditor进行了一些测试,并且能够检测目标词以突出显示它们更改其属性,但这有所不同。
答案 0 :(得分:0)
NSTextAttachment 将允许您将图像插入UITextView(它适用于任何属性字符串)。
let attributedString = NSMutableAttributedString(string: "This is a string with an attached image: ")
let attachment = NSTextAttachment()
attachment.image = UIImage(named: "imageToInsert")
let attachmentString = NSAttributedString(attachment: attachment)
attributedString.appendAttributedString(attachmentString)
textView.attributedText = attributedString
当然,为了渲染您的标记,您需要将您的类型动态渲染为图像。您可以通过为标记文本创建属性字符串并在其上调用 boundingRectWithSize 来完成此操作。使用此大小+其他元素和填充的大小,然后获取图形上下文并渲染文本,左侧图标和右侧图标,并调用 UIGraphicsGetImageFromCurrentImageContext 以获取生成的图像。 / p>
答案 1 :(得分:0)
您可以查看SubviewAttachingTextView。它提供类似的功能。
显示自定义视图:
let attachment = SubviewTextAttachment(view: CustomView(frame: frame))
textView.attributedText = NSAttributedString(attachment: attachment)