UICollectionViewFlowLayout minimumInteritemSpacing doesn't work

删除回忆录丶 提交于 2019-12-30 08:38:30

问题


I've got two problems with my UICollectionView:

  • minimumInteritemSpacing doesn't work
  • it overflows horizontally on iOS 6

I set up the layout like this:

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);

The image shows the result on iOS 6 (on iOS 7 there is no overflow, but the spacing between columns is still not zero)

I tried this solution https://gist.github.com/OliverLetterer/5583087, but it doesn't fix anything in my case.


回答1:


From the documentation for the minimumInterItemSpacing property:

For a horizontally scrolling grid, this value represents the minimum spacing between items in the same column. This spacing is used to compute how many items can fit in a single line, but after the number of items is determined, the actual spacing may possibly be adjusted upward.

The flow layout will evenly space cells across its width, with a spacing of no smaller than the minimum you set. If you don't want the spacing, you'll need to implement your own layout.

The iOS 6 overflow issue I'm not sure about. Try dropping support for iOS 6 ;)



来源:https://stackoverflow.com/questions/24303876/uicollectionviewflowlayout-minimuminteritemspacing-doesnt-work

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!