在第一个单元格加载到UICollectionView之前获取UICollectionViewCell

时间:2018-05-03 17:11:50

标签: ios swift uicollectionview uicollectionviewcell

我使用的API允许我指定我获取的图像的尺寸。为了最大限度地提高网络效率,我尝试使请求的维度与集合视图单元格中图像视图的维度完全匹配。

这里的问题是,为了在API请求中指定正确的尺寸,我需要首先知道图像视图框的尺寸。但是 - 在API请求完成后,没有单元格被加载到视图中。一只经典的鸡肉和鸡蛋的煎熬。

问题是如何从尚未加载任何单元格的UICollectionView获取UICollectionViewCell内的UIImageView的维度。有意义吗?

我的第一个也是唯一一个失败的希望如下:

let cell = self.topSellersCollectionView.visibleCells.first as! HomeProductsCell

我在想,可能会快速加载一个"空模板"最初即使尚未设置数据也是单元格。显然情况并非如此。

有任何帮助吗?感谢。

1 个答案:

答案 0 :(得分:1)

您可以通过

了解imageView的框架
override func viewDidLayoutSubviews()
{
      super.viewDidLayoutSubviews()
      self.collectionView.frame.size.width // Also subtract cell spacing to get correct dimension 
}