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

Ios 在UICollectionView中加载第一个单元格之前获取UICollectionViewCell,ios,swift,uicollectionview,uicollectionviewcell,Ios,Swift,Uicollectionview,Uicollectionviewcell,我使用的API允许我指定我获取的图像的维度。为了最大限度地提高网络效率,我试图使请求的维度与集合视图单元格中图像视图的维度完全匹配 这里的问题是,为了在API请求中指定正确的尺寸,我需要首先知道图像视图框架的尺寸。但是-在API请求完成之前,不会将单元格加载到视图中。经典的鸡和蛋的考验 问题是如何从尚未加载任何单元格的UICollectionView中获取UICollectionViewCell内UIImageView的维度。有道理吗 我的第一个也是唯一的希望失败了,那就是: let cell

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

这里的问题是,为了在API请求中指定正确的尺寸,我需要首先知道图像视图框架的尺寸。但是-在API请求完成之前,不会将单元格加载到视图中。经典的鸡和蛋的考验

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

我的第一个也是唯一的希望失败了,那就是:

let cell = self.topSellersCollectionView.visibleCells.first as! HomeProductsCell
我在想,也许斯威夫特最初加载了一个空的模板单元格,即使数据尚未设置。情况显然并非如此


有什么帮助吗?谢谢。

您可以通过

override func viewDidLayoutSubviews()
{
      super.viewDidLayoutSubviews()
      self.collectionView.frame.size.width // Also subtract cell spacing to get correct dimension 
}

谢谢你的回复。正如您的回答所示,通过大量的数学运算,我可以推断集合视图维度,然后推断单元维度,然后推断图像视图维度——但这必须针对我使用的每种类型的单元进行修改。有没有一种方法可以在不进行数学运算的情况下获取图像视图的尺寸?为了澄清这一点,我正在寻找一种方法来转换尚未加载到变量中的单元格,以获得精确的帧尺寸。这可能是不可能的。您可以等到collectionView:willDisplayCell:forItemAtIndexPath:并获取维度,但仅对于该单元格,仅加载visibleCells,但请求将被延迟,直到该单元格显示虚拟图像,我建议采用回答方法,因为这是较早的方法,将使您能够快速获取请求,而无需虚拟想象一下,如果连接良好,收到。够近就是够近。