0

このプロジェクトでは、Webサービスからのデータをテーブルに入力しています。より多くのデータが利用可能になると、テーブルがリロードされます。heightForRowAtIndexPathタイトル文字列のサイズに応じてセルのサイズを設定するために使用しています。54のMAXまたは文字列の高さを返します。奇妙なことに、テーブルがロードシーケンスを初めて実行すると、セルごとに44が返されます。セルの高さをに記録しますcellForRowAtIndexPath。2回目にリロードが呼び出されると、正しいセルの高さが得られます。その結果、セルのサブビューは最初は適切ではなく、その後非常に突然配置されます。誰かがそれについて何か洞察を持っているかどうか疑問にUITableView思うことは私を正しい方向に向けるかもしれません。ありがとう!

4

1 に答える 1

1

文字列が最初に取得されるため、メンバー変数で reload を呼び出す前に文字列のサイズを格納する必要があるため、簡単になります。次は、indexPath メソッドで行の高さでそのメンバー変数を返すことです。

@interface
{
   CGSize fixedStringSize;
}

@implementation


-(void)dataFinishDownload
{
   fixedStringSize = [yourCustomMethodForStringSize:titleString];
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
   return fixedStringSize.height;
}

@end
于 2012-12-18T06:36:30.560 に答える