为什么UIImageView没有填满整个CollectionViewCell,即使我有所有约束

时间:2016-06-02 15:46:16

标签: ios swift uiimageview autolayout uicollectionview

我有一个水平UICollectionView,每个单元格都有一个UIImageView。当我将UIImageView放在单元格内时:

故事板看起来像这样(请注意UIImageView占用UICollectionViewCell的整个空格,并带有标识符postInnerCell {} {}}

我认为我已正确使用autoLayout设置约束,UIImageView的每一边都被UICollectionViewCell的边缘压缩。 喜欢这个

enter image description here

然而,当我运行模拟器时,它看起来像这样:enter image description here

图像未填满collectionViewCell的整个空间(灰色背景色)。 UIImageView的内容模式设置为界面构建器中的方面填充。

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

**请注意,整个UICollectionView是tableView的一个单元格(基本上,我尝试完成的是tableView的每一行都是一个水平滑块)。我不确定这是不是问题。任何人都知道为什么会出现这样的问题。 **

3 个答案:

答案 0 :(得分:1)

事实证明,在我使用cell.layoutIfNeeded()方法返回单元格之前,我需要通过调用collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath)来重新布局子视图。感谢这里的回答UICollectionViewCell content wrong size on first load

答案 1 :(得分:0)

将图片视图的Content hugging priority设置为Low (250)

答案 2 :(得分:0)

IIRC,单元格的内容视图将在不触发AutoLayout的情况下调整大小,因此您必须手动触发布局传递(例如.needsLayout = true或将内容视图中的约束添加到单元格