0

在这个项目中,我正在使用来自 Web 服务的数据填充一个表。随着更多数据可用,表会重新加载。我heightForRowAtIndexPath用来根据标题字符串的大小来调整单元格的大小。它返回 54 的 MAX 或字符串高度。奇怪的是,表格第一次运行加载序列时,它为每个单元格返回 44。我将单元格高度记录在cellForRowAtIndexPath. 当第二次调用 reload 时,我得到了正确的单元格高度。结果是单元格子视图最初不合适,然后非常突然地就位。想知道是否有人对此有任何见解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 回答