UICollectionView

item的间距总是调整不好,记录点遇到的问题

UICollectionViewFlowLayout *flowLayout= [[UICollectionViewFlowLayout alloc]init];
    CGFloat w = 50;
    CGFloat h = w;
    CGSize size = CGSizeMake(w, h);
    
    flowLayout.itemSize = size;
    flowLayout.scrollDirection = UICollectionViewScrollDirectionVertical;

_collectionView = [[UICollectionView alloc]initWithFrame:CGRectMake(0, 0 , 310, 100) collectionViewLayout:flowLayout];

-(CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section
{
    return 0;
}

//cell中
-(void)layoutSubviews{
    [super layoutSubviews];
    NSLog(@"%@",NSStringFromCGRect(self.frame));
}

/**
现在itemsize大小是 50 * 50,collectionView的宽是310
item的间距设置为0,那么打印结果
{{156, 0}, {50, 50}}
{{104, 0}, {50, 50}}
{{52, 0}, {50, 50}}
{{0, 0}, {50, 50}}
而且显示确实有间距

如果collectionView的宽改为300  300/50是刚好的,这时候显示item就没有间距,打印也对
{{150, 0}, {50, 50}}
{{100, 0}, {50, 50}}
{{50, 0}, {50, 50}}
{{0, 0}, {50, 50}}
*/
我们设置的间距是最小间距,系统根据collectionview宽度item大小等再次计算。
要正确修正这些东西,可以。。。待续

你可能感兴趣的:(UICollectionView)