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