我创建了一个CollectionView,每行三个项目。如果我的单元格仅包含一个视图,则它的工作效果确实很好,如图所示:
但是,如果我在具有相同约束的视图内添加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)
}
答案 0 :(得分:0)
似乎您正在使用UICollectionViewFlowLayout
。
这不是错误或意外行为。如果某个内容限制在单元格contentView
的边缘,则布局将调整单元格的大小以适合内容。与其将图像限制在前/后锚和顶部/底部锚点上,不将其中心限制在单元格的中心,这样就不会影响单元格的大小。您可以按原样保留collectionView(_:layout:sizeForItemAt:)
。