如何优美地解决collectionView cell间隙?

且看代码:

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
    // 修复cell间隙
    // 4 表示每一行4个cell
    NSInteger width = collectionView.bounds.size.width / 4.0;
    NSInteger num = (NSInteger)collectionView.bounds.size.width % 4;
    if (indexPath.row < num) {
        width = width + 1;
    }
    
    return CGSizeMake(width, 118);
}

原理:
如果是平均分配宽度,以CGFloat为单位得到的将是小数。但是苹果手机屏幕像素不能准确地根据小数来显示,在这里做一下取舍。cell的宽取整数,后面的num是collectionView分配给各个cell宽度后余下的像素的点数。然后把剩下的点数分别赋值给最前面的cell,就是width = width + 1

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容