解释我的情况的最佳示例是使用博客文章。假设我有一个 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/