Ios 为什么在Xcode 11上,UICollectionViewCell会在滚动时更改大小(我已经在sizeForItem AtIndexPath:中设置了大小)?

Ios 为什么在Xcode 11上,UICollectionViewCell会在滚动时更改大小(我已经在sizeForItem AtIndexPath:中设置了大小)?,ios,swift,xcode,uicollectionview,uicollectionviewcell,Ios,Swift,Xcode,Uicollectionview,Uicollectionviewcell,我在tableview单元格中有collectionview,我在collection view单元格中使用nib(在其中,我对imageview和标签使用autolayout,它处于自由形式模式)。我正在tableviewcell类中设置单元格大小,该类通过以下方法处理collectionview的委托: func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollect

我在tableview单元格中有collectionview,我在collection view单元格中使用nib(在其中,我对imageview和标签使用autolayout,它处于自由形式模式)。我正在tableviewcell类中设置单元格大小,该类通过以下方法处理collectionview的委托:

 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
        return CGSize(width: 200, height :150)        
    }

它总是能工作,但在Xcode 11之后就不行了

我也有同样的问题。我的解决方案是将Xcode 11中的
估计大小
更改为
None


您在Xcode 11中将
collectionview
估计大小设置为None。这是因为
UICollectionView
中的单元格现在可以在画布中自动调整布局约束视图的大小。若要选择现有集合视图的行为,请在“大小检查器”中为集合视图的估计大小启用“自动”,并为单元格大小启用“自动”

如果在iOS 13之前部署,您可以在viewDidLoad()过程中调用PerformBatChUpdate(uU2;:completion:)来激活自调整大小的集合视图单元格。

参考:

这个问题出现在Xcode 11中。转到属性检查器并将estimateSize更改为None。会解决一切问题

正如Anh Tuan在这里的另一个回答中所说,您只需要在故事板集合视图的大小检查器中将估计大小更改为none

但如果您想以编程方式执行此操作,可以尝试以下代码:

    let layout = myCollectionViewReferenceHere.collectionViewLayout as! UICollectionViewFlowLayout
    layout.estimatedItemSize = .zero

我在Xcode 11中遇到了同样的问题。有什么解决办法吗?是的,只需通过autolayout删除所有约束,如果有,只需为类创建一个出口并通过代码进行设置,这是使用autolayout时唯一的解决方法,否则必须在此处使用Xcode 10.2@anandnanavitysame。我注意到UICollectionViewCells会根据其内容调整大小。如果将UIImageView放在单元格内并分配图像,则即使实现了委托方法,单元格也会调整大小。UILabel等也一样。只有在使用顶部、底部、尾随和前导约束填充某些内容时,才会出现这种情况。如果使用宽度和高度等固定约束,则不会发生这种情况。UICollectionViewCell的大小检查器中的“ContentView”设置有一些问题需要解决。但禁用它会破坏自动布局。所以我通过再次安装xCode 10并在xCode 10中构建情节提要来修复它。哇……就是这样!非常感谢你。在将图像添加到
UIImageView
时,我遇到了一个问题,它总是将单元格拉伸到图像的大小。对于那些试图在代码中不设置图像的人,你是一个救生员:);我将其设置为.zero“layout.estimatedItemSize=.zero”它对我来说很有用,它确实帮助我修复单元格帧的图像视图边界。有人知道如何在集合视图中使用这个估计大小的东西吗?我找了一段时间,这个解决了我的问题!谢谢我真是太感谢你了!