有没有可行的方法来使用UIWebView / WKWebView在UITableViewCell中加载动态内容?

时间:2015-03-02 16:37:21

标签: ios uitableview uiwebview ios8 wkwebview

我正在为iPhone构建一个RSS阅读器,我从服务器上获取文章及其HTML,我想在UITableView中显示该用户的文章列表。

我已经探索了像DTCoreText这样的选项,可以将HTML与UILabelUITextView一起使用,但遗憾的是,它并没有为我可以处理的所有HTML提供足够的支持。 。因此,UIWebViewWKWebView似乎是我准确表示内容的唯一选择。

问题在于内容如何变化高度。检测the content's height isn't too bad,但当您使用UITableView时,表视图首先要求所有行的高度,并且使用Web视图,您必须首先加载内容,然后在回调中已完成装载,只有这样才能找到高度。这很烦人,因为在我的情况下,HTML非常简单,只需要非常的时间让Web视图呈现它。

所以你有这个问题,表视图要求行的高度,你基本上说“只需一秒钟,暂时取这个随机值,当我发现时,我会在一秒钟内告诉你。”这非常有效,因为当你滚动表格时,它会占用中间值,然后加载内容并更新,导致跳转,如果你因为高度反弹而向上滚动,这尤其糟糕对于上面的行,您正在计算。第一次看到它时缓存高度似乎也不起作用,因为用户可以旋转设备并使缓存的值无效。

所以我想知道,是否有 任何 方式可以在表格视图中使用网页浏览量?

1 个答案:

答案 0 :(得分:1)

如果您已预先加载了网络内容,则可以。只需修改您的方法,并且在您拥有该行的Web内容之前,不要告诉表视图存在行。然后,一旦加载了内容,您就可以获得其高度并将该行插入表视图的底部。继续此过程,直到加载所有内容。