在CollectionView iOS中删除间距

时间:2019-04-12 12:35:26

标签: swift uicollectionview uicollectionviewflowlayout

我正在使用UICollectionViewDelegateFlowLayout委托将其设置为正方形,但末尾显示奇怪的间距。

enter image description here enter image description here

  

我的代码

 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {

    if collectionView == self.bannerClcView {

        let cellSize = CGSize.init(width: view.frame.size.width, height: view.frame.size.height)
        return cellSize

    }else if collectionView == self.category {

        let cellSize = CGSize.init(width: (self.category.frame.size.width/3), height: category.frame.size.width/3)
        return cellSize

    }else {

        let cellSize = CGSize.init(width: (recomended_Ads_Clc.frame.size.width/2), height: 220)
        return cellSize

    }
}


func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
    return 0
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
    return 0
}

如何删除间距?请帮忙。

2 个答案:

答案 0 :(得分:0)

如果打开放置UICollectionView的情节提要并选择其尾随约束,我会在“属性”检查器中看到这样的图像:

enter image description here

您需要取消选中“相对于边距”以删除您看到的多余空间。

答案 1 :(得分:0)

您的错误是源视图,您需要为函数内部的单元格计算width属性

static_cast

代替

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize

let cellSize = CGSize.init(width: (recomended_Ads_Clc.frame.size.width/2), height: 220) return cellSize

然后根据需要计算高度。单元格之间将有10个空间