ios - 如何在 iPhone 上显示来自 API 的 HTML 文本?

解释我的情况的最佳示例是使用博客文章。假设我有一个 UITableView 加载了我从 API 获得的博客文章的标题。当我点击一行时,我想显示详细的博客文章。

这样做时,API 会返回几个字段,包括“post body”(即 HTML 文本)。我的问题是,我应该用什么来显示它以便它显示为格式化的 HTML?我应该为此使用 UIWebView 吗?我不确定当您从字面上查看网页时是否使用 UIWebView(例如使用 URL 或其他内容对其进行初始化),或者您是否可以将其传递给 HTML 字符串并且它会正确格式化。

此页面上将显示其他几个字段,例如标题、类别、作者等。我只是使用 UILabels 来处理这些,所以没有问题。但我不知道如何处理 HTML block 。顺便说一句,我正在以编程方式完成所有这些工作。

如果你看不出来,我对 iOS 开发还比较陌生,只有大约 2-3 周的时间,没有 obj-c 背景。因此,如果 UIWebView 是正确的方法,我也会很感激任何“陷阱!”笔记,如果有的话。

最佳答案

正如大卫刘所说,UIWebview是要走的路。我会推荐一些单独构建 HTML 字符串,然后将其传递给 UIWebView。另外,我会使用 [webView setBackgroundColor:[UIColor clearColor]] 使背景透明,这样您就可以更轻松地让事情看起来像他们应该的样子。

这是一个代码示例:

- (void) createWebViewWithHTML{
    //create the string
    NSMutableString *html = [NSMutableString stringWithString: @"<html><head><title></title></head><body style=\"background:transparent;\">"];

    //continue building the string
    [html appendString:@"body content here"];
    [html appendString:@"</body></html>"];

    //instantiate the web view
    UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.frame];

    //make the background transparent
    [webView setBackgroundColor:[UIColor clearColor]];

    //pass the string to the webview
    [webView loadHTMLString:[html description] baseURL:nil];

    //add it to the subview
    [self.view addSubview:webView];

}

注意:

使用“NSMutableString”的好处是您可以通过整个解析操作继续构建字符串,然后将其传递给“UIWebView”,而“NSString”一旦创建就无法更改。

https://stackoverflow.com/questions/4138336/

相关文章:

ios - 了解一对多的核心数据删除规则

ios - 不支持推送导航 Controller

ios - 我可以设置 `attributedText` 的 `UILabel` 属性吗

objective-c - 核心数据 "use scalar properties for prim

iphone - 我的 iPhone Objective-C 代码如何在 UIWebView 中收到

objective-c - Xcode:可以为协议(protocol)接口(interface)所需

objective-c - iOS 7 过度导航栏按钮填充

ios - 使用 Xcode 进行模拟时,PerformFetchWithCompletionHan

ios - AVPlayer 和 Video 的屏幕截图

objective-c - 实现 -hash/-isEqual :/-isEqualTo. ..:用