【问题标题】:What is the best way to display rich content in an iOS app?在 iOS 应用中显示丰富内容的最佳方式是什么?
【发布时间】:2015-05-27 13:46:18
【问题描述】:

我正在为新闻网站开发 iOS 应用,该应用从 URL (JSON) 获取内容。

网站中的每篇文章都有描述,其中可能嵌入了图片。如何在我的 UITextView(或者 UILabel?)中显示嵌入的 HTML 图像?我找到了一个名为:RichContentLabel 的类,但它与 iOS7+ 不兼容。我可以使用另一个类似的课程吗?

这是一个带有嵌入图像的测试字符串:

<div> some text here <span> something else</span>
<img src="image source" /> something here too
</div>

【问题讨论】:

标签: html ios objective-c image


【解决方案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]]);
}

【讨论】:

  • 是的,用一张图片做这件事有点容易,但是如果字符串中有多个图片并且在多个地方,你如何获取所有图片并将它们放置在适当的位置?跨度>
  • 这就是NSRegularExpression 的用途。您将获得一系列结果。然后,您可以将图像添加到 UIScrollViewUIImageView's
【解决方案2】:

你可以使用UIWebView:

UIWebView *myWebView = [UIWebView alloc] init];

[myWebView loadHTMLString:testString baseURL:nil];

【讨论】:

  • 谢谢,我知道,但我不想使用 UIWebView,因为它在旧设备上比较滞后,而且拥有完整的原生应用程序总是更好。
猜你喜欢
  • 2015-08-12
  • 1970-01-01
  • 2012-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-09
相关资源
最近更新 更多