我有一个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
这些都没有解决我的问题。
答案 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
}