在使用TableViewCell的StackView中,UIImageView不是自动高度

时间:2017-05-12 16:19:27

标签: swift uitableview uicollectionview ios-autolayout uistackview

enter image description here 这是视图层次结构

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

从服务器下载图像

我使用KingFisher下载图像

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

但它不是立即更新UI

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

我该怎么做?

与collectionView相同的问题,我在collectionview.reloaData之后设置了collectionview的高度约束并得到了collectionview.contentSize.height

2 个答案:

答案 0 :(得分:0)

试试这个:

将当前layoutIfNeeded()替换为:

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

答案 1 :(得分:0)

尝试在setNeedsLayout()之前致电layoutIfNeeded()

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

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