0

グループ化されたテーブル ビューに UIWebView があり、1 つのセルの高さが可変であるため、関数 heightForRowAtIndexPath が計算される前に webViewDidFinish を待機する必要があります。どうやってやるの ?

4

2 に答える 2

0

試したことはありませんが、[_myTable reloadData]; を実行するとどうなりますか? あなたのwebViewDidFinishの最後に? これにより、テーブル情報がリロードされます。

または、while ループで BOOL を試すことができますか?

リクエストを送信する前に boolStillLoading を true に設定し、戻ってきたら false に設定します

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

それはきれいではないか、おそらく最も効率的な方法ではありませんが、テーブルの前に何かを実行している間、テーブルがロードされないようにします。

他のアプローチを見たいのですが...

于 2013-03-27T19:37:19.210 に答える
0

heightForRowAtIndexPath の呼び出しを明示的に停止することはできませんが、これを調整することはできます。loadweb ビューを再度呼び出した後、高さのテーブル リロード データを呼び出します。

同じために Web ビュー デリゲート メソッドを使用します。

– webView:shouldStartLoadWithRequest:navigationType:

– webViewDidStartLoad:

– webViewDidFinishLoad:

– webView:didFailLoadWithError:

変数値 (hieght 用) を webViewDidFinishLoad に格納してから、tableview リロード データを呼び出します。cellForRowAtIndex メソッドで、この変数を高さに使用します。

于 2013-03-28T09:29:08.060 に答える