UICollectionView中的单元间距

UICollectionView中的单元间距

如何在UICollectionView?我知道有一项财产minimumInteritemSpacing我已将其设置为5.0,但间距仍未出现5.0。我已经实现了流出委托方法。

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:
(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section{

    return 5.0;}

不过,我并没有达到预期的效果。我认为这是最小间距。我没有办法设定最大间距吗?



烙印99
浏览 1649回答 3
3回答

慕的地8271018

我知道这个话题已经过时了,但是如果有人还需要正确的答案的话,你需要的是:覆盖标准流布局。添加这样的实现:-&nbsp;(NSArray&nbsp;*)&nbsp;layoutAttributesForElementsInRect:(CGRect)rect&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;NSArray&nbsp;*answer&nbsp;=&nbsp;[super&nbsp;layoutAttributesForElementsInRect:rect]; &nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i&nbsp;=&nbsp;1;&nbsp;i&nbsp;<&nbsp;[answer&nbsp;count];&nbsp;++i)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UICollectionViewLayoutAttributes&nbsp;*currentLayoutAttributes&nbsp;=&nbsp;answer[i]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UICollectionViewLayoutAttributes&nbsp;*prevLayoutAttributes&nbsp;=&nbsp;answer[i&nbsp;-&nbsp;1]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NSInteger&nbsp;maximumSpacing&nbsp;=&nbsp;4; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NSInteger&nbsp;origin&nbsp;=&nbsp;CGRectGetMaxX(prevLayoutAttributes.frame); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(origin&nbsp;+&nbsp;maximumSpacing&nbsp;+&nbsp;currentLayoutAttributes.frame.size.width&nbsp;<&nbsp;self.collectionViewContentSize.width)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CGRect&nbsp;frame&nbsp;=&nbsp;currentLayoutAttributes.frame; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frame.origin.x&nbsp;=&nbsp;origin&nbsp;+&nbsp;maximumSpacing; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currentLayoutAttributes.frame&nbsp;=&nbsp;frame; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;answer;}最大空间可以设置为任何你喜欢的值。这个技巧保证细胞之间的空间完全相等于最大化空间!

三国纷争

使用水平流布局,我还得到了细胞之间的10点间距。要删除我需要设置的间距minimumLineSpacing以及minimumInterItemSpacing降到零。UICollectionViewFlowLayout&nbsp;*flow&nbsp;=&nbsp;[[UICollectionViewFlowLayout&nbsp;alloc]&nbsp;init]; flow.itemSize&nbsp;=&nbsp;CGSizeMake(cellWidth,&nbsp;cellHeight); flow.scrollDirection&nbsp;=&nbsp;UICollectionViewScrollDirectionHorizontal;flow.minimumInteritemSpacing&nbsp;=&nbsp;0;flow.minimumLineSpacing&nbsp;=&nbsp;0;此外,如果所有单元格大小相同,则直接在流布局上设置属性比使用委托方法更简单、更有效。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

iOS