美文网首页
UICollectionView的cell有缝隙解决方法

UICollectionView的cell有缝隙解决方法

作者: 東玖零 | 来源:发表于2020-07-29 12:43 被阅读0次

    1.造成有缝隙的主要原因是一行cell的个数不能被CollectionView的宽整除。


    Simulator Screen Shot - iPhone 8 - 2020-07-29 at 11.36.36.png

    如图红色是 CollectionView的背景颜色,能明显看出cell之间有缝隙。
    既然知道是不能被整除造成的,那么我们就想办法让它能整除。

    iphone8屏幕的宽是375除以4除不尽,那我们加上多少能被整除呢?
    比如3÷2=1…1,要想 3加上x后的值能整除2的最小值,那就是3加上余数即可。

    同理大于屏幕宽并且能整除4的最小值是:375 + 375%4,能得到这个宽,由于我们需要把视图放在屏幕居中的位置,x值就是 ((375 + 375%4) - 375)/2,每个cell的宽是(375 + 375%4)/4,说了那么多我们上代码。

    let difference = Int(k_screen_width)%4 // 最小差值
    let maxWidth = CGFloat(difference) + k_screen_width // 大于屏幕最接近屏幕能除尽4的宽
    let cellWidth = maxWidth/4 // 每个cell的宽
    let viewX = (k_screen_width - maxWidth)/2 // UICollectionView 的x值
    
    let layout = UICollectionViewFlowLayout()
    layout.minimumInteritemSpacing = 0
    layout.minimumLineSpacing = 0
    layout.headerReferenceSize = CGSize(width: k_screen_width, height: 40)
    layout.itemSize = CGSize(width: cellWidth, height: cellWidth)
    
    let rect = CGRect(x: viewX, y: 0, width: maxWidth, height: k_view_height_t)
    let view = UICollectionView(frame: rect, collectionViewLayout: layout)
    

    调整后我们上个效果图


    Simulator Screen Shot - iPhone 8 - 2020-07-29 at 12.38.36.png

    完美解决。

    相关文章

      网友评论

          本文标题:UICollectionView的cell有缝隙解决方法

          本文链接:https://www.haomeiwen.com/subject/wprhrktx.html