Swift UIImageView在StackView和TableViewCell中不是自动高度

Swift UIImageView在StackView和TableViewCell中不是自动高度,swift,uitableview,uicollectionview,ios-autolayout,uistackview,Swift,Uitableview,Uicollectionview,Ios Autolayout,Uistackview,这是视图层次结构 我希望PhotoImgView自动高度取决于图像大小 该映像是从服务器下载的 我用翠鸟下载图片 下载完成后,我设置了PhotoImgView的高度约束,并在cell类中执行layoutIfNeeded() 但它不会立即更新UI 当我滚动到另一个单元格,让该单元格不可见,然后再向后滚动时,该单元格将是正确的 我该怎么做 collectionView也存在同样的问题,我在collectionView.reloaData之后设置了collectionView的高度约束,并获取coll

这是视图层次结构

我希望PhotoImgView自动高度取决于图像大小

该映像是从服务器下载的

我用翠鸟下载图片

下载完成后,我设置了PhotoImgView的高度约束,并在cell类中执行layoutIfNeeded()

但它不会立即更新UI

当我滚动到另一个单元格,让该单元格不可见,然后再向后滚动时,该单元格将是正确的

我该怎么做

collectionView也存在同样的问题,我在collectionView.reloaData之后设置了collectionView的高度约束,并获取collectionView.contentSize.height

尝试以下操作:

用以下内容替换当前的
layoutifneed()

DispatchQueue.main.async {
    self.layoutIfNeeded()
}

layoutifneed()之前尝试调用
setNeedsLayout()

要获得集合视图高度的正确结果,您可以尝试:

collectionView.reloadData()
collectionView.setNeedsLayout()
collectionView.layoutIfNeeded()
collectionView.collectionViewLayout.invalidateLayout()