具有可变图像大小和AutoLayout

时间:2015-11-26 12:06:42

标签: ios swift autolayout uicollectionview uicollectionviewcell

我试图在最初显示单元格后加载的UIImageView中显示UICollectionViewCell

如果不显示白色,我会使用后备图像。其大小与稍后显示的图像不同。 因此,在显示较大的后备图片时调用sizeForItemAtIndexPath,并返回对于最终加载的图像来说太大的大小。

我已经实现了一个委托,在图像加载完成后调用一个方法。然后,委托方法使用已完成加载的单元格的reloadItemsAtIndexPathsUICollectionView上调用indexPath。仅当单元格的计算height与之前计算的值不同时,才会发生这种情况。初始加载后,映像也存储在缓存中。这一起确保了reloadItemsAtIndexPaths方法只被调用一次。

虽然这一般起作用,但我不确定它是否是最佳做法。它也没有最好的性能,网络速度很小,我的布局看起来不是很好。

有没有人遇到过同样的问题,或者试图动态调整UICollectionView中单个单元格的大小?

1 个答案:

答案 0 :(得分:2)

我的图像查看应用程序遇到了类似的问题。我在集合视图的invalidateLayout属性上使用了collectionViewLayout。它不会重新加载单元格,但会为可见单元格调用sizeForItemAtIndexPath