ios - CollectionViewCell 的容器视图未填充单元格
问题描述
我有一个collectionView,它的高度和宽度是我使用自动布局设置的约束。在我的
func collectionView(_ collectionView: ...., sizeForItemAt indexPath: IndexPath)
我回来CGSize(width: self.collectionView.frame.width-20, height: self.collectionView.frame.height)
了,如下图所示,它排列得非常好。
问题是该单元格的容器视图(空白区域)根本没有填满绿色空间(即单元格的背景),即使我已将 containerView 的约束设置为拥抱左/右/下/上0 边距。
到目前为止我所尝试的:
为我分配集合视图高度的容器视图进行高度约束
updateConstraints()
在cellForItemAt
```layoutSubview()``` 中的单元格类中和内部将容器视图的框架设置为 collectionView 的框架
cell.layoutIfNeeded()
在cellForItemAt
这些都没有解决我的问题。
解决方案
我认为这里的问题与插图有关。请使用集合委托方法
- (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)];
斯威夫特 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
}
推荐阅读
- javascript - 有没有办法使换行符(\n)的高度小于文本的行高?
- python - 如何使用制表 python 包在终端中显示漂亮的表格?
- wordpress - bncert 说我的域解析为不同的 IP 地址,但事实并非如此
- xamarin - Xamarin - 如何从 AppStore 下载崩溃报告?
- database - 获取数组内容作为数组中多个对象的特征
- rust - 具有互斥的编译器重新排序部分
- gradle - 无法解析 Gradle 脚本插件中的插件(外部 Gradle 文件)
- css - 样式不适用于 Angular 中的子子路由
- javascript - 如何将 Vue .prototype 迁移到单独的文件
- javascript - Codemirror 不会对来自 textarea 的代码进行样式设置