我想替换" [img src =(IMAGE NAME)]"文字到(图像名称)图像。 但文字换成了空白。不是图像。我该怎么办?
guard
let original = self.text
else { return }
let pattern = "\\[img src=(\\w+)\\]"
do{
let regex = try NSRegularExpression(pattern: pattern, options: [])
let matches = regex.matches(in: original, options : [], range : NSMakeRange(0, original.characters.count))
let attributeString = NSMutableAttributedString(string : original)
for match in matches.reversed(){
let emoticon = attributeString.attributedSubstring(from: match.rangeAt(1)).string
if let image = UIImage(named : "\(emoticon)"){
let attributedImage = NSTextAttachment()
attributedImage.image = image
attributedImage.bounds = CGRect(x : 0, y : 0, width : image.size.width, height : image.size.height)
attributeString.replaceCharacters(in: match.rangeAt(0), with: NSAttributedString(attachment: attributedImage))
}
}
self.attributedText = attributeString
}catch{
}
答案 0 :(得分:0)
要做的是存储要检索的数据。那就是......将名称存储在某处并使用它来加载图像。不是相反。
因此,创建一个类似于imageName的属性,然后将其用作图像名称。
答案 1 :(得分:0)
我解决了这个问题。带有Image的NSTextAttachment无法在UITextField中显示。但是,在具有编辑模式的UITextView中,可以显示图像。