0

我的分组表视图中有一个 UIWebView,并且因为一个单元格的高度是可变的,我希望函数 heightForRowAtIndexPath 在计算之前等待 webViewDidFinish。我怎样才能做到这一点 ?

4

2 回答 2

0

您不能停止显式调用 heightForRowAtIndexPath,但您可以对此进行调整。再次加载web视图后调用表重新加载高度数据。

使用相同的 Web 视图委托方法。

– webView:shouldStartLoadWithRequest:navigationType:

– webViewDidStartLoad:

– webViewDidFinishLoad:

– webView:didFailLoadWithError:

在 webViewDidFinishLoad 中存储变量值(对于 hieght),然后调用 tableview 重新加载数据。现在在 cellForRowAtIndex 方法中使用这个变量作为高度。

于 2013-03-28T09:29:08.060 回答
0

没试过,但是如果你做 [_myTable reloadData]; 在你的 webViewDidFinish 结束时?那应该重新加载表信息。

或者你可以尝试一个带有while循环的BOOL?

在发送请求之前将 boolStillLoading 设置为 true,然后当它返回时将其设置为 false

viewDidLoad...
while(boolStillLoading){
    sleep(.2);
}

这不是漂亮的或可能是最有效的方法,但它会在您执行之前的内容时阻止加载表。

虽然很想看到其他方法......

于 2013-03-27T19:37:19.210 回答