0

このメソッドtableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPathにラグの問題があります。

私のシナリオは次のとおりです。各セルにいくつかのテキストビューがあるため、セルをループして最後のテキストビューのyPositionとそのコンテンツサイズを取得し、特定のセルの高さを構成する必要があります。

そのために、UITableViewCell * cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];を使用しました。heightForRowAtIndexPathメソッドで。そのため、cellForRowを呼び出し、セルのコンテンツを再構成して、私に戻ります。

ただし、ここでラグの問題が発生します。heightForRowは実際のcellForRowの前に呼び出されるため、cellForRowを2回呼び出すことを意味します。1つはセルを取得するためのheightForRowにあり、もう1つは実際のcellForRow実装用です。

このラグの問題を回避するために私が何をする必要があるかについて、親切にアドバイスしてください。ありがとうございました。

4

2 に答える 2

1

メソッドで行の高さを計算する必要があります。これ-tableView:heightForRowAtIndexPath:には、呼び出し-[NSString sizeWithFont:forWidth:lineBreakMode:]または他の API を呼び出し、それにパディングの高さを追加します。

でどんなに速くして-tableView:heightForRowAtIndexPath:も、tableView.rowHeight.

于 2012-08-03T03:54:26.320 に答える
0

自分でテーブル ビュー デリゲート メソッドを呼び出してはいけません。これを使用して、テーブルビューにデータをリロードするように指示できます。[tableview reloadData];

于 2012-08-03T03:47:58.367 に答える