2012-04-12 11 views
1

1つのセルにUITableViewが含まれているセルのUITableViewがあります。テーブルを含む行を選択すると、新しいビューがアイテムのリストとともに画面にプッシュされます。ユーザはアイテムのリストを選択し、「戻る」を押すとそのビューがポップアップする。親ビューでは、選択した項目の数が表示され、セルの高さが調整されて選択されたすべての項目が表示されます。他のテーブルのセル内の動的にサイズ変更されたテーブルは、ビューを再表示するときにサイズ変更されません。

ビューが再表示されると、リストされた項目は下のセルに拡張されます。そのセルを画面外にスクロールして戻すと、そのセルはすべてのアイテムを正しく表示している正しい高さになります。

私は、[self.view setNeedsDisplay]や[self.view setNeedsLayout]のようなメインテーブルのviewWillAppearにコードを入れてみたが、うまくいきませんでした。

ビューが表示されたら、テーブルをスクロールせずに、そのセルを正しいサイズに再描画する方法が見つからないようです。

実際に表示される前に強制的に再描画する方法がありますか?

答えて

0

試してください:あなたは、現在のセルを再描画するために使用している何

NSIndexPath *theIndexPath = [NSIndexPath indexPathForRow:cellRow inSection:cellSection]; 
NSArray *theIndexPaths = [NSArray arrayWithObject:theIndexPath]; 
[table reloadRowsAtIndexPaths:theIndexPaths withRowAnimation:NO]; 

?それが画面を消して戻ってきたときに、自分自身を再描画するのを待っていますか?または[table reloadData];のようなものを使用していますか?

+0

メインテーブルのviewWillAppear私はその時点でreloadDataを呼び出しています。どれが通過し、heightForRowAtIndexPathのようなものが呼び出されます。これは、選択されたアイテムの数を決定して、テーブルの行の調整された高さを表示して返すものです。 – WolfpackEE

+0

ところで、私はあなたのコードを推奨していますか? – WolfpackEE

+0

reloadDataを呼び出すと、とにかくそのセルをリロードすると思います。私はちょうどviewWillAppearとviewDidAppearでテストし、両方の場所で私のために動作します。これらの関数が呼び出される前に、高さのデータが正しいことを確認してください。 –

関連する問題