我的UICollectionView有两个问题:
minimumInteritemSpacing
无效我这样设置布局:
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
layout.itemSize = CGSizeMake(70.0f, 70.0f);
layout.scrollDirection = UICollectionViewScrollDirectionVertical;
layout.minimumLineSpacing = 0.0f;
layout.minimumInteritemSpacing = 0.0f;
_collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
// I set the size of _collectionView in layoutSubviews:
// _collectionView.frame = self.bounds;
_collectionView.contentInset = UIEdgeInsetsMake(8.0f, 8.0f, 8.0f, 8.0f);
该图显示了在iOS 6上的结果(在iOS 7上没有溢出,但是列之间的间隔仍然不为零)
我尝试过此解决方案https://gist.github.com/OliverLetterer/5583087,但在我的情况下并不能解决任何问题。
对于水平滚动网格,此值表示同一列中项目之间的最小间距。此间距用于计算一行中可以容纳多少个项目,但是确定项目数后,
实际间距可能会向上调整。
流布局将在单元的整个宽度上均匀间隔单元,间隔小于设置的最小间隔[[不小于。如果您不希望有间距,则需要实现自己的布局。
我不确定iOS 6的溢出问题。尝试放弃对iOS 6的支持;)水平收集视图具有单元格列
因此: 对于具有一行的简单水平集合视图,
因此令人惊讶的是,在一个只有一行的简单水平集合视图中,为了设置项目之间的间隙,它就是:
l.minimumLineSpacing = 6 // Apple means "vertical scan lines" by "lines"
([minimumInteritemSpacing
在只有一行的普通简单水平集合视图中是完全没有意义的。]这最终解释了为什么互联网上有100页询问为什么minimumInteritemSpacing
无效。用户@matt的精彩提示