UICollectionView的cell创建直接从第三个数据开始问题

实现的效果是这样

UICollectionView的cell创建直接从第三个数据开始问题_第1张图片
lALPBbCc1RKmEL_NBTbNAu4_750_1334.png_620x10000q90g.jpg

大概意思就是第一组没有数据就直接将改组的cell高度变成0
效果实现了,但是第二组数据创建cell就出问题了--奇葩问题

UICollectionView的cell创建直接从第三个数据开始问题_第2张图片
lALPBbCc1RKmELnNBTbNAu4_750_1334.png_620x10000q90g.jpg
  • 代码问题在这
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
    
    
    if (indexPath.section == 0) {
        
        if (self.couponDataArr.count) {
            return CGSizeMake(SCREEN_WIDTH, AUTO_SCALE_H(103));
        }else{
            
            return CGSizeMake(SCREEN_WIDTH, 0);
        }

    }else if(indexPath.section == 1){
        return CGSizeMake((MainScreenWidth- 10)/2, (MainScreenWidth- 10)/2+98);
    }else{
        return CGSizeZero;
    }
}

就这样加个.1就好了

UICollectionView的cell创建直接从第三个数据开始问题_第3张图片
lALPBbCc1RKmEM_NBTbNAu4_750_1334.png_620x10000q90g.jpg
-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
    
    
    if (indexPath.section == 0) {
        
        if (self.couponDataArr.count) {
            return CGSizeMake(SCREEN_WIDTH, AUTO_SCALE_H(103));
        }else{
            
            return CGSizeMake(SCREEN_WIDTH, 0.1);
        }

    }else if(indexPath.section == 1){
        return CGSizeMake((MainScreenWidth- 10)/2, (MainScreenWidth- 10)/2+98);
    }else{
        return CGSizeZero;
    }
}


三张图,应该很是明了

你可能感兴趣的:(UICollectionView的cell创建直接从第三个数据开始问题)