在iOS应用中展示丰富内容的最佳方式是什么?

3
我正在为一家新闻网站开发iOS应用程序,该应用程序从URL(JSON)获取内容。
网站上的每篇文章都有描述,其中可能嵌入了图片。我如何在UITextView(或者可能是UILabel?)中显示嵌入的HTML图片?我找到了一个名为:RichContentLabel 的类,但它不兼容iOS7+。是否有其他类似的类可以使用?
这是一个带有嵌入图像的测试字符串:
<div> some text here <span> something else</span>
<img src="image source" /> something here too
</div>

请查看这个答案 - https://dev59.com/6m855IYBdhLWcg3wp2J0 - Asaf
2个回答

1
如果您不想使用 UIWebView,您需要找到一种方法从您的 HTML 字符串中获取图像源 URL。您可以使用 NSRegularExpression 来实现这一点,然后将 imageURL 加载到 UIImageView 中。

编辑:

我使用 this 网站来尝试我的正则表达式。

NSError *error = nil;
NSString *regExPattern = @"img src=\"(.*?)\"";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regExPattern
                                                                       options:NSRegularExpressionCaseInsensitive | NSRegularExpressionDotMatchesLineSeparators
                                                                         error:&error];
NSArray *matches = [regex matchesInString:HTMLString options:0 range:NSMakeRange(0, HTMLString.length)];


for (NSTextCheckingResult *result in [matches reverseObjectEnumerator])
{
    NSLog(@"0 %@", [HTMLString substringWithRange:[result rangeAtIndex:0]]);
}

是的,对于一张图片做这个操作可能比较容易,但如果在多个字符串和多个位置中有多张图片,你怎么获取所有的图片并将它们放置在相应的位置呢? - ANA
这就是 NSRegularExpression 的用途。你会得到一个结果数组。然后,您可以将图像添加到 UIImageViewUIScrollView 中。 - Jasper

0
你可以使用一个 UIWebView:
UIWebView *myWebView = [UIWebView alloc] init];

[myWebView loadHTMLString:testString baseURL:nil];

谢谢,我知道这一点,但我不想使用UIWebView因为它在旧设备上运行缓慢,而且拥有一个完整的本地应用程序总是更好的。 - ANA

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接