【问题标题】:UIImageView is not auto height in StackView with TableViewCellUIImageView 不是 StackView 和 TableViewCell 中的自动高度
【发布时间】:2017-05-12 16:19:26
【问题描述】:
这是视图层次结构
我希望 PhotoImgView 自动高度取决于图像大小
图片是从服务器下载的
我使用 KingFisher 下载图片
下载完成后,我设置PhotoImgView的高度约束,在cell类中做layoutIfNeeded()
但它不会立即更新 UI
当我滚动到另一个单元格,让单元格不可见,然后向后滚动时,单元格将是正确的
我该怎么做?
collectionView同样的问题,我在collectionview.reloaData之后设置collectionview的高度约束并得到collectionview.contentSize.height
【问题讨论】:
标签:
swift
uitableview
uicollectionview
ios-autolayout
uistackview
【解决方案1】:
试试这个:
用这个替换你当前的layoutIfNeeded():
DispatchQueue.main.async {
self.layoutIfNeeded()
}
【解决方案2】:
尝试在layoutIfNeeded() 之前调用setNeedsLayout()。
要获得集合视图高度的正确结果,您可以尝试:
collectionView.reloadData()
collectionView.setNeedsLayout()
collectionView.layoutIfNeeded()
collectionView.collectionViewLayout.invalidateLayout()