CollectionViewCell的容器视图未填充单元格

时间:2019-09-21 01:01:48

标签: ios swift uicollectionview

我有一个collectionView,它的高度和宽度是我使用自动布局设置的约束。 在我的

func collectionView(_ collectionView: ...., sizeForItemAt indexPath: IndexPath)我返回CGSize(width: self.collectionView.frame.width-20, height: self.collectionView.frame.height),从下面链接的图像中可以很好地看到。

问题是,即使我已将containerView的约束设置为拥抱左/右/下,该单元格的容器视图(空白)根本不会填满绿色空间(即单元格的背景) / up,边距为0。

到目前为止我尝试过的事情

  • 为容器视图设置高度限制,以便我为集合视图指定高度

  • updateConstraints()cellForItemAt中,在单元格的类中位于“''layoutSubview()``

  • 将容器视图的框架设置为collectionView的框架

  • cell.layoutIfNeeded()cellForItemAt

这些都没有解决我的问题。

https://i.stack.imgur.com/mD2iC.jpg

1 个答案:

答案 0 :(得分:0)

我认为这是与插图有关的问题。请使用集合委托方法

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section{

    return UIEdgeInsetsMake(top, left, bottom, right);

}

UICollectionViewFlowLayout *aFlowLayout = [[UICollectionViewFlowLayout alloc] init];

[aFlowLayout setSectionInset:UIEdgeInsetsMake(top, left, bottom, right)];

Swift 5.1

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
    UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
}

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