Swift CollectionView在imageview内部时更改大小

时间:2019-10-20 09:26:09

标签: ios swift uicollectionview

我创建了一个CollectionView,每行三个项目。如果我的单元格仅包含一个视图,则它的工作效果确实很好,如图所示:

here its shows like it should

但是,如果我在具有相同约束的视图内添加Imageview,它将看起来像这样:

Collection view cell with imageview

这是我的CollectionView代码:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
    return UIEdgeInsets.zero
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
    return 0
}     

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    let yourWidth = collectionView.bounds.width/3.0
    let yourHeight = yourWidth

    return CGSize(width: yourWidth, height: yourHeight)
}

1 个答案:

答案 0 :(得分:0)

似乎您正在使用UICollectionViewFlowLayout

这不是错误或意外行为。如果某个内容限制在单元格contentView的边缘,则布局将调整单元格的大小以适合内容。与其将图像限制在前/后锚和顶部/底部锚点上,不将其中心限制在单元格的中心,这样就不会影响单元格的大小。您可以按原样保留collectionView(_:layout:sizeForItemAt:)