Ios Swift:UICollectionView单元格在实现sizeForItemAtIndexPath时无法更新帧

Ios Swift:UICollectionView单元格在实现sizeForItemAtIndexPath时无法更新帧,ios,swift3,uicollectionview,uicollectionviewcell,Ios,Swift3,Uicollectionview,Uicollectionviewcell,当我实现以下代码时: func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize{ let cellW = (ScreenWidth - 10 - 10 - 30) / 4 return CGSize(width: cell

当我实现以下代码时:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize{

    let cellW = (ScreenWidth - 10 - 10 - 30) / 4

    return CGSize(width: cellW, height: cellW * 1.5 )

}
通过使用sizeForItemAt方法,我可以画出我想要的框架,但我的自定义collectionview单元格无法更新为wise,我错过了什么,请帮助我

我用这个参考来修正它

感谢各位,首先我的Cell.imageview仍有问题,无法按我的要求塑造圆形,我为imageview创建了一个类,如下所示:

class CellImageView: UIImageView {
override func layoutSubviews() {
    super.layoutSubviews()
    let radius: CGFloat = self.bounds.size.width / 2.0
    self.layer.cornerRadius = radius
    self.clipsToBounds = true

}

在iOS 13中,任何东西都能完美地工作

,我首先将
estimatedItemSize
设置为
.zero
并设置
itemSize

if let layout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
 layout.estimatedItemSize = .zero
 layout.itemSize = CGSize(width: collectionView.frame.size.width, height: 80)
}

是否将图像的约束添加到superView的前导/尾随/顶部?为底部视图添加缺少的约束?我确实为我的imageview和label添加了约束,这似乎是collectionview单元格的问题,也许我在awakefromNib中缺少了什么?这是我的故事板collectionview单元格框架您是否编写了在类声明中实现UICollectionViewDelegateFlowLayout的命令?是的,我实现了UICollectionViewDelegateFlowLayout委托,以便我可以绘制区域(请参见调试视图中的:)