0

我有包含链接的文本(这些是图像链接)我需要解析文本以便构建它,并且当链接被获取时,图像被获取。

例如:

“我曾经养过一只狐狸http://mysite.com/images/fox.jpg。我还养过一只小狗http://mysite.com/images/dog.jpg

所以它看起来像这样:

我曾经养过一只狐狸

----------------------------------
|                                |
|Fox Image From                  |
|http://mysite.com/images/fox.jpg|
|                                |
|                                |
----------------------------------

我还养了一只小狗和一只公鸡

----------------------------------
|                                |
|dog Image From                  |
|http://mysite.com/images/dog.jpg|
|                                |
|                                |
----------------------------------
--------------------------------------
|                                    |
|rooster Image From                  |
|http://mysite.com/images/rooster.jpg|
|                                    |
|                                    |
--------------------------------------

我可以用什么来实现这个目标?

我已经设置了视图,但现在它只显示我的文本。如何将图像添加到该视图?我该如何解析它们?最好的方法是什么?

4

3 回答 3

1

您可以可行地使用 aUIWebView来显示您的文本,并且在找到有效图像链接的任何地方,将其包装在<img>标签中。

要解析这些链接,您可以使用 RegEx。您可能需要自己调整正则表达式以适应您的确切规格,但粗略的 jist 将是http(?:s)?://.+\.(?:jpg|jpeg|png|gif|bmp). 这将获取一个以 http 或 https 开头并以 .jpg、.png 等结尾的网络链接......(顺便说一下未经测试

在代码中,您可以将其作为

NSString *regExpString = @"http(?:s)?://.+\\.(?:jpg|jpeg|png|gif|bmp)";
NSString *storyStr = @"...";    

NSRegularExpression *storyRegex = [[NSRegularExpression alloc] initWithPattern:regExpString
                                                                      options:NSRegularExpressionCaseInsensitive
                                                                        error:nil];

NSString* webViewStr = [storyRegex stringByReplacingMatchesInString:storyStr options:0 range:NSMakeRange(0, storyStr.length) withTemplate:@"<br\><img src=\"$0\"></img><br\>"];

然后,webViewStr在一个UIWebView

UIWebView* webView = ...;
[webView loadHTMLString:webViewStr baseURL:nil];
于 2013-01-31T14:44:55.300 回答
0

img src=每当您检测到图像链接时(通过使用stringByReplacingOccurencesOfString: withString:最有可能),您可以首先将其转换为 HTML,方法是将图像链接包装在标签中。

因此,您将所有链接转换为:

http://mysite.com/images/rooster.jpg

<img src="http://mysite.com/images/rooster.jpg">

获得 HTML 后,您可以将其加载到UIWebView.

希望这可以帮助。

于 2013-01-31T14:39:35.860 回答
0

我们可以编写html代码并在textview中显示

NSString *regExpString = @"http(?:s)?://.+\\.(?:jpg|jpeg|png|gif|bmp)";
NSString *yourStr = @"Test Article with Image and LinksTest Article with Image and Links http://image.gif";
NSRegularExpression *storyRegex = [[NSRegularExpression alloc] initWithPattern:regExpString options:NSRegularExpressionCaseInsensitive error:nil];

NSString* tempStr = [storyRegex stringByReplacingMatchesInString:yourStr options:0 range:NSMakeRange(0, storyStr.length) withTemplate:@"<br\><img src=\"$0\"></img><br\>"];
NSString *htmlStr = [NSString stringWithFormat:@"<html> %@ </html>",tempStr];
[self.txtView setValue:htmlStr forKey:@"contentToHTMLString"];
于 2015-12-02T12:24:24.253 回答