UICollectionView可见单元在运行时计数

时间:2018-09-27 08:34:40

标签: ios swift uicollectionview uicollectionviewcell

我有一个UICollecitonView。由于分页,我需要使单元格大小等于UICollectionView框架大小,并且我通过在UICollectionViewCell的内容视图中尾随和前导空格来处理间距,而UICollectionView的间距实际上为零。并且我将UICollectionView的clipToBounds设置为false。 当我使用“调试视图层次结构”时,UICollectionView同时具有两个可见单元格。但是在我的情况下,我同时需要至少3个可见的单元格,因为我需要显示上一个单元格和下一个单元格的边缘,就像您在图像中看到的一样。 enter image description here

我该怎么做?

func numberOfSections(in collectionView: UICollectionView) -> Int {
    return 1
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    return collectionView.frame.size 
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return self.data_array.count
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
    return 0
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
    return 0
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
    return UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
}

1 个答案:

答案 0 :(得分:0)

当前您要返回的单元格的大小就是集合视图的大小。

因此,屏幕上将永远只有一个完整的单元格。

如果要显示其他单元格的边缘,则返回较小的item函数尺寸。

类似...

CGSize(width: collectionView.bounds.size.width - 40, height: collectionView.bounds.size.height)

这会使单元格变小,并应显示一些边缘。

您将不得不使用不同的大小和项目间距来完善它。