在具有不同高度的表视图单元格中嵌入长UIWebView

时间:2010-06-04 10:36:26

标签: iphone objective-c uitableview uiwebview

我希望能够将UIWebView嵌入到tableview的单元格中(分组样式)。

网页视图很长(比屏幕长),我希望它显示全长。因此,Web视图本身没有滚动,就在桌面上。

------------------------
| a normal table cell  |
------------------------
| a normal table cell 2|
------------------------
|   a long webview     |
|  which doesn't scroll|
|  within itself       |
|                      |
|                      |
|                      |
|                      |
|                      |
|                      |
|                      |
|                      |
|                      |
|                      |
|                      |
------------------------

网页视图将具有不同的高度,那么如何才能发现webview的高度以调整heightForRowAtIndexPath中的高度?

1 个答案:

答案 0 :(得分:0)

以下是你如何做到这一点,但请看下面的注意事项:

您可以加载Web视图,然后使用javascript函数来确定内容的高度。然后,您可以使用[myWebView stringByEvaluatingJavaScriptFromString:..]来获取高度。

这是问题所在。 UIWebViews相当慢。在知道行的高度之前,表不能呈现自己,因为它决定了要获取哪些表单元格。因此,滚动表格视图会不稳定,因为每次向下滚动到新单元格时,都需要计算高度。

您可以采取两种方法:

1)不要使用UITableCell中嵌入的UIWebView。而是使用UILabel并使用一些NSString方便方法来确定它的高度。

2)对整个表使用UIWebView。您可以通过这样做非常接近地模拟tableview,您将获得所需的UI。要处理点击之类的事情,请使用UIWebViewDelegate提供的URL加载挂钩。