我的文字包含链接(这些是图片链接) 我需要解析文本以便构建它,并且当链接被访问时,将获取图像。
所以例如:
“我曾经有一只狐狸
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|
| |
| |
--------------------------------------
我可以用什么来实现这个目标?
我已经设置了视图,但现在它只显示我的文本。 如何将图像添加到该视图? 我该如何解析它们? 什么是最好的方法?
答案 0 :(得分:1)
您可以使用UIWebView
来显示文字,无论在何处找到有效的图片链接,都可以将其打包在<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];
答案 1 :(得分:0)
每当检测到图像链接时(最有可能使用img src=
),您可以通过将图像链接包装在stringByReplacingOccurencesOfString: withString:
标记中来将其转换为HTML。
所以您转换所有链接:
http://mysite.com/images/rooster.jpg
到
<img src="http://mysite.com/images/rooster.jpg">
获得HTML后,您可以将其加载到UIWebView
。
希望这有帮助。
答案 2 :(得分: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"];