iPhone:如何在UITextView中显示UIWebView HTML文档中的文本

iPhone:如何在UITextView中显示UIWebView HTML文档中的文本,iphone,rss,uiwebview,uitextview,Iphone,Rss,Uiwebview,Uitextview,我有一个RSS提要,它被安排在UITableView中,让用户选择一个加载到UIWebView中的故事。但是,我想停止使用UIWebView,只使用UIExtView或UILabel 这个png就是我想要做的(只显示新闻故事的各个文本方面): 我试过使用: NSString *myText = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.textContent"]; 并将字符串分配给U

我有一个RSS提要,它被安排在UITableView中,让用户选择一个加载到UIWebView中的故事。但是,我想停止使用UIWebView,只使用UIExtView或UILabel

这个png就是我想要做的(只显示新闻故事的各个文本方面):

我试过使用:

NSString *myText = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.textContent"];
并将字符串分配给UILabel,但从我在
webViewDidFinishLoad
中实现它的位置开始它就不起作用了(-这不是正确的位置吗?)。我有一个空白的文本视图和正常的网络视图

如果我将UITextView单独覆盖在UIWebView的顶部(即,只加载一个页面的webView),上面发布的代码可以很好地显示文本。当我试图处理RSS提要时,问题就出现了

我一直在想,为什么这几天来都没有达到应有的效果。如果您有更好、更有效的方法,然后将代码放入
webViewDidFinishLoad
,请告诉我!它是否进入我的
didSelectRowAtIndexPath?


提前非常感谢

如果要显示的NSString不是空的,请尝试在webViewDidFinishLoad方法中执行以下操作:

[yourUILabel performSelectorOnMainThread:@selector(setText:) withObject:[NSString stringWithFormat:@"bla bla %@", @"more bla"] waitUntilDone:YES];
iphone应用程序的主线程负责绘制组件,这就是为什么标签不显示文本的原因

您也可以尝试将
setNeedsDisplay:
设置为true


此外,UILabel不会保留HTML格式。它将仅显示为文本。

如果要显示的NSString不是空的,请尝试在webViewDidFinishLoad方法中执行以下操作:

[yourUILabel performSelectorOnMainThread:@selector(setText:) withObject:[NSString stringWithFormat:@"bla bla %@", @"more bla"] waitUntilDone:YES];
iphone应用程序的主线程负责绘制组件,这就是为什么标签不显示文本的原因

您也可以尝试将
setNeedsDisplay:
设置为true


此外,UILabel不会保留HTML格式。它将仅显示为文本。

我认为您应该首先记录以下返回的字符串:

NSString *myText = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.textContent"];
。。。在RSS提要的情况下,确保您得到了一些反馈。RSS页面可能没有相同的javascript组件,并且返回空字符串


一旦您确认了这一点,那么让它在文本视图中正确显示就成了一件简单的事情

我认为您应该首先记录以下返回的字符串:

NSString *myText = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.textContent"];
。。。在RSS提要的情况下,确保您得到了一些反馈。RSS页面可能没有相同的javascript组件,并且返回空字符串


一旦您确认了这一点,那么让它在文本视图中正确显示就成了一件简单的事情

您可以尝试以下方法:

NSString *htmlContent = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerHTML;"];

NSString *htmlContent = [webView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML;"];

NSString *htmlContent = [webView stringByEvaluatingJavaScriptFromString:@"document.body.innerText;"];

最后一行代码的格式信息丢失。

您可以尝试以下操作:

NSString *htmlContent = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerHTML;"];

NSString *htmlContent = [webView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML;"];

NSString *htmlContent = [webView stringByEvaluatingJavaScriptFromString:@"document.body.innerText;"];

您在最后一行代码中丢失了格式信息。

什么“当RSS提要添加到混合中时会出现问题”?当我们不能清楚地理解问题所在时,很难给出建议。文本视图显示的RSS是空白的还是什么?编辑时,我困惑地发现,当您试图显示RSS内容时,您得到的是一个空白的文本视图。这是正确的吗?什么“当RSS提要添加到混合中时会出现问题”?当我们不能清楚地理解问题所在时,很难给出建议。文本视图显示的RSS是空白的还是什么?编辑时,我困惑地发现,当您试图显示RSS内容时,您得到的是一个空白的文本视图。对吗?嗨,索林,谢谢你的回复。我在webViewDidFinishLoad中实现了这一点,但我想,因为我不习惯使用NSString,所以我把它搞砸了。字符串的格式是什么(即stringWithFormat后面是什么?)例如,这是一个RSS提要示例:感谢您的帮助!正如TechZen所说,我指出,您应该首先查看要显示的NSString是否为empy。关于NSString类,您可以在此处阅读:。NSString*myString=[NSString stringWithFormat:@“%@”,参数];其中参数可以是另一个NSString对象或@“我有一只猫”。stringWithFormat后面的%@表示参数内容的占位符,在本例中为NSString。对于float,如果我没有记错的话,您可以使用%f,%d=整数,因此我查看了xml。这里有一个标题、描述、新闻的url、缩略图url。您要做的第一件事是下载在xml的链接标记中指定的地址处找到的网页。在那之后,试着以某种方式解析它。。。如果您不进行任何解析直接显示文本,UILabel将显示所有文本,包括html标记。嗨,Sorin,谢谢您的回复。我在webViewDidFinishLoad中实现了这一点,但我想,因为我不习惯使用NSString,所以我把它搞砸了。字符串的格式是什么(即stringWithFormat后面是什么?)例如,这是一个RSS提要示例:感谢您的帮助!正如TechZen所说,我指出,您应该首先查看要显示的NSString是否为empy。关于NSString类,您可以在此处阅读:。NSString*myString=[NSString stringWithFormat:@“%@”,参数];其中参数可以是另一个NSString对象或@“我有一只猫”。stringWithFormat后面的%@表示参数内容的占位符,在本例中为NSString。对于float,如果我没有记错的话,您可以使用%f,%d=整数,因此我查看了xml。这里有一个标题、描述、新闻的url、缩略图url。您要做的第一件事是下载在xml的链接标记中指定的地址处找到的网页。在那之后,试着以某种方式解析它。。。如果直接显示文本而不进行任何解析,UILabel将显示所有文本,包括html标记。