Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在不同位置动态向uitextview添加图像_Ios_Uitextview_Emoji - Fatal编程技术网

Ios 在不同位置动态向uitextview添加图像

Ios 在不同位置动态向uitextview添加图像,ios,uitextview,emoji,Ios,Uitextview,Emoji,各位开发人员和成员 我正在开发一个IOS应用程序,我正在将各个Web应用程序中的数据集成到我的应用程序中,那些相当优秀的Web应用程序开发人员正在通过自己的自定义图像(如.png)在chat SerService中实现emojies。因此,我收到了类似(message+.png图像路径)的对话消息,这些路径在文本中的不同位置,并且多次出现。因此,我必须在UITextview中显示.png图像。这实际上是可行的吗?我们非常感谢您的建议,非常感谢您为此花费时间 输入:嗨!(一些图像路径作为字符串)早

各位开发人员和成员

我正在开发一个IOS应用程序,我正在将各个Web应用程序中的数据集成到我的应用程序中,那些相当优秀的Web应用程序开发人员正在通过自己的自定义图像(如.png)在chat SerService中实现emojies。因此,我收到了类似(message+.png图像路径)的对话消息,这些路径在文本中的不同位置,并且多次出现。因此,我必须在UITextview中显示.png图像。这实际上是可行的吗?我们非常感谢您的建议,非常感谢您为此花费时间

输入:嗨!(一些图像路径作为字符串)早上好(一些图像路径作为字符串)这真是一个值得寻找的地方

输出:嗨()早上好()这真是一个值得寻找的东西


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

要确定需要用图像替换的子字符串,可以使用正则表达式。RayWenderlich提供了一个关于iOS(或)中正则表达式的不错的教程。有关正则表达式从字符串提取URL的SO示例,可能与您需要实现的类似,请参阅:

然后,您可以通过循环匹配来构建包含图像的消息。如何使用图像构建消息取决于您计划如何访问图像

如果您不希望在设备或内存中下载和存储图像,则
UITextView
的另一种解决方案是将适当的html标记添加到消息字符串(即
img src
)并使用
UIWebView
()。例如

让exampleMessageString=“图像之前的文本http://www.androidicons.com/assets/images/ai-mdpi-black/ic_action_achievement.png 图像之间的文本http://www.androidicons.com/assets/images/ai-mdpi-black/ic_action_armchair.png “图像后的文本”
让htmlMessageString=convertMessageStringToHtml(示例MessageString)
//其中convertMessageStringToHtml实现您的正则表达式并返回如下内容:
//图像前文本图像间文本图像后文本
让webView=UIWebView(帧:CGRectMake(x,y,宽度,高度))
webView.loadHTMLString(htmlMessageString,baseURL:nil)
然而,
WebView
可能无法为您提供所需的控制级别。在这种情况下,您可以使用属性字符串()在
UITextView
中显示带有图像的消息。您仍然可以以相同的方式循环使用正则表达式,但是您可以创建属性字符串,而不是构建html字符串。关于如何在其他SO答案中使用属性字符串,有很多示例:


如果您需要下载图片的帮助,请参阅:

谢谢您的时间,peteR,并提供了链接。我已经看过,而且看起来很有价值。但在我的例子中,我不确定有多少这样的png图片以及它们在邮件中的位置是不可想象的。这完全取决于用户。例如,您好,您现在好吗?还有其他。该图片路径可能是在信息中的任何位置和任何时间。此外,还有多个图像路径,可用于显示多个图像,我需要公平地显示这些图像,就像在短信中显示表情一样。我希望你理解这里的问题,我等待你的答复。很高兴认识你,peterI,我只是在这里猜测抱歉,因为我不完全理解你的问题。您是否能够编辑您的问题以提供更多详细信息,如:一条真实的示例消息、模拟的所需输出、您如何检索图像,以及您迄今为止尝试的一些代码。嗨,彼得!我试图附上图像,但它不允许我,因为我没有足够的声誉。我会找到一些替代品,让你知道更好的事情很快。谢谢你及时的反应不要担心模型,我知道你在做什么,谢谢。图像路径的格式是什么?它是一个url,你必须下载图片吗?它是您已下载或有权访问的图像的本地文件路径吗?消息字符串中是否有任何东西将某个子字符串标识为图像路径?该路径是我必须下载的图像的url。如果有意义,我也可以将这些图像本地存储在我的项目中,前提是它们可以帮助我,而不是每次从web下载每条消息。但是如何标识这些路径并设置这些路径呢适当的图像,但不丢失消息中的位置。我的意思是,如何用适当的图像替换该路径
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)