UICollectionView动态单元格高度(Pinterest布局)

nou*_*ouf 9 pinterest uicollectionviewcell swift

我正在尝试在我的应用程序中实现Pinterest布局

我使用以下委托方法来实现它并动态设置单元格高度

 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    let boundingRect =  CGRect(x: 0, y: 0, width: self.view.frame.size.width / 2 - 20, height: CGFloat(MAXFLOAT))
    let data = articles[indexPath.row]
    let rect  = AVMakeRect(aspectRatio: (data.coverImage?.size)!, insideRect: boundingRect)
    return CGSize(width: rect.width, height: rect.height + 120) // Added 120 for a description I will add later 
}
Run Code Online (Sandbox Code Playgroud)

但是我得到了以下结果:

这里

灰色背景是单元格的背景,你可以看到每个单元格都有自己的高度(正如预期的那样),但是还有额外的空格,我不知道如何删除.

我怎样才能解决这个问题?

Saq*_*mer 0

你的UICollectionView布局不对。从故事板或通过CollectionViewDelegateFlowLayout方法删除单元格间距和列间距。

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

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
     return CGFloat()// Your Value
    }
Run Code Online (Sandbox Code Playgroud)