gpt4 book ai didi

ios - 在不同位置动态地向 uitextview 添加图像

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:01:21 25 4
gpt4 key购买 nike

HI SO 开发者和成员,

我正在开发一个 IOS 应用程序,并将来自各个 Web 应用程序的数据集成到我的应用程序中,那些非常优秀的 Web 应用程序开发人员正在通过他们自己的自定义图像(如 .png)在聊天服务中实现表情符号。所以我收到了像(消息+.png 图像路径)这样的对话消息,这些路径在文本中的不同位置多次出现。所以我必须在 UITextview 中显示 .png 图像这实际上是可行的, 非常感谢任何建议,非常感谢您抽出宝贵时间。

Input: HI!(some path of image as string)good morning(some path of image as string)这真是一个值得寻找的东西

输出:HI()good morning() 这真是一个值得寻找的东西

注意:假设 () 这是我应该显示为表情符号的 png 图像。

最佳答案

要识别需要用图像替换的子字符串,您可以使用正则表达式。 Ray Wenderlich 在 iOS 中提供了一个关于正则表达式的不错的教程(swiftobjective-c)。有关正则表达式从字符串中提取 URL 的 SO 示例,这可能与您需要实现的类似,请参阅:Using NSRegularExpression to extract URLs on the iPhone .

然后您可以遍历匹配项以构建包含图像的消息。如何使用图像构建消息取决于您计划如何访问图像。

如果您不想下载和存储图像,无论是在设备上还是在内存中,那么 UITextView 的替代解决方案是将适当的 html 标记添加到您的消息字符串(即 img src)并使用 UIWebView ( docs )。例如

let exampleMessageString = "Text before image http://www.androidicons.com/assets/images/ai-mdpi-black/ic_action_achievement.png text in between images http://www.androidicons.com/assets/images/ai-mdpi-black/ic_action_armchair.png text after images"
let htmlMessageString = convertMessageStringToHtml(exampleMessageString)
// where convertMessageStringToHtml implements your regex and returns something like:
// Text before image <img src=\"http://www.androidicons.com/assets/images/ai-mdpi-black/ic_action_achievement.png\" /> text in between images <img src=\"http://www.androidicons.com/assets/images/ai-mdpi-black/ic_action_armchair.png\" /> text after images

let webView = UIWebView(frame: CGRectMake(x, y, width, height))
webView.loadHTMLString(htmlMessageString, baseURL: nil)

WebView 可能无法为您提供所需的控制级别。在这种情况下,您可以使用属性字符串 (docs) 在您的 UITextView 中显示带有图像的消息。您仍然可以以相同的方式循环遍历您的正则表达式,但不是构建 html 字符串,而是创建属性字符串。在其他 SO 答案中有很多关于如何使用属性字符串的示例:

iOS 7 TextKit - How to insert images inline with text?

How to add image and text in UITextView in IOS?

如果您需要一些帮助来下载图像,请参阅:iOS download and save image inside app

关于ios - 在不同位置动态地向 uitextview 添加图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28803748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com