Ios 如何在collectionview滚动到完整页面的位置实现干净分页

Ios 如何在collectionview滚动到完整页面的位置实现干净分页,ios,collectionview,scroll-paging,Ios,Collectionview,Scroll Paging,我有一个集合视图,它有一个3宽3高的网格单元。我已启用分页功能,可以水平滚动以查看下一页共9个单元格。但是,最后一页我没有完整的9个单元格,只剩下3个单元格。分页只会滚动到单元格的第一列,看起来很糟糕。我想让它完全滚动到第三页,这样它在第一列显示剩余的3个单元格,在第二列显示6个空单元格。非常感谢您的帮助!这是我的寻呼代码,提前谢谢 func scrollViewDidEndDecelerating(scrollView: UIScrollView) { // sets which

我有一个集合视图,它有一个3宽3高的网格单元。我已启用分页功能,可以水平滚动以查看下一页共9个单元格。但是,最后一页我没有完整的9个单元格,只剩下3个单元格。分页只会滚动到单元格的第一列,看起来很糟糕。我想让它完全滚动到第三页,这样它在第一列显示剩余的3个单元格,在第二列显示6个空单元格。非常感谢您的帮助!这是我的寻呼代码,提前谢谢

func scrollViewDidEndDecelerating(scrollView: UIScrollView) {

      // sets which page we are currently on
      let pageWidth:CGFloat = collectionView.frame.size.width
      let currentPage:CGFloat = collectionView.contentOffset.x / pageWidth

      // sets the page control to the current page
      pageControl.currentPage = Int(currentPage)
}

当您获得将显示在
CollectionView
中的
Collection
时,您应该按9对其进行模运算以获得剩余部分。如果模为0,则不执行任何操作。如果模是任何其他数字,则从9中减去该数字,然后将那么多“虚拟”单元格添加到集合中以填充它们

以下是一些让您开始学习的代码:

int remainder = (int)[self.collectionView numberOfItemsInSection:0] % 9;  //I am assuming you don't have more than one section
if(remainder){
    for(i = 9; i > remainder; i--){
        //add a dummy item to collectionView
    }
}

对于不同的屏幕尺寸/设备,总是3X3还是不同?对于所有设备,总是3X3。感谢您的回复!你说的有道理,但我在网上找不到任何关于如何添加透明虚拟单元的信息。这是制作第二个空白原型单元并将其添加到上面的示例中的问题吗?还是有不同的方法?非常感谢你的帮助!您有一个包含9x+3项的数组的
collectionView
数据源,对吗?我不知道数组中的对象是什么类型的(
UIImage
也许?),但您可以再制作6个,并将它们附加到末尾。(如果是图像,可以将其设置为空白透明图像)。添加页脚可能更优雅,但更难。