0

我想使用 CHTCollectionViewWaterfallLayout 创建一个瀑布布局。我在演示中注意到单元格高度是固定的,并且它位于一个数组中。但是,现在,我有一个图像 url,我想在屏幕上显示它,但高度不知道。因此,heightForItemAtIndexPath 数据源不起作用。如何在下载某些图像 url 之前计算其高度。或者我可以在 cellForItemAtIndexPath 数据源方法中下载和显示图像,同时在 heightForItemAtIndexPath 数据源方法中计算高度并设置单元格高度?怎么做?

4

1 回答 1

2

如果图像是从您自己的服务器下载的,那么我建议首先发送显示图像尺寸的元数据,并在下载图像之前使用它来计算高度。

如果图片不在您的服务器上,那么最好的解决方案是添加 BOOL 数组指示是否下载了相应的图片,如果已下载,则调整高度,如果没有,则使用默认高度。

并向您的单元格添加一个委托,该委托在加载图像时调用以下方法:

- (void) ImageLoadedAtIndexPath:(NSIndexPath)indexPath {

     [self.tableView beginUpdates];
     [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationNone];
     [self.tableView endUpdates];

}

希望能帮助到你。

于 2013-07-31T09:39:53.153 回答