我试图在最初显示单元格后加载的UIImageView
中显示UICollectionViewCell
。
如果不显示白色,我会使用后备图像。其大小与稍后显示的图像不同。
因此,在显示较大的后备图片时调用sizeForItemAtIndexPath
,并返回对于最终加载的图像来说太大的大小。
我已经实现了一个委托,在图像加载完成后调用一个方法。然后,委托方法使用已完成加载的单元格的reloadItemsAtIndexPaths
在UICollectionView
上调用indexPath
。仅当单元格的计算height
与之前计算的值不同时,才会发生这种情况。初始加载后,映像也存储在缓存中。这一起确保了reloadItemsAtIndexPaths
方法只被调用一次。
虽然这一般起作用,但我不确定它是否是最佳做法。它也没有最好的性能,网络速度很小,我的布局看起来不是很好。
有没有人遇到过同样的问题,或者试图动态调整UICollectionView
中单个单元格的大小?
答案 0 :(得分:2)
我的图像查看应用程序遇到了类似的问题。我在集合视图的invalidateLayout
属性上使用了collectionViewLayout
。它不会重新加载单元格,但会为可见单元格调用sizeForItemAtIndexPath
。