在iOS中使用分页的UICollectionView的页数

考虑启用stream布局和分页的pagingEnabled (通过将pagingEnabled设置为YES )。

获得总页数的最简单方法是什么?

哪里可以find最合适的位置来更新页面总数(假设如果项目被添加/删除,收集视图的大小会发生变化或者布局发生变化,它可能会发生变化)?

如果UICollectionView水平滚动, UICollectionView contentSize的宽度分割为其宽度:

 int pages = floor(self.collectionView.contentSize.width / self.collectionView.frame.size.width) + 1; 

如果它垂直滚动,则将contentSize的高度除以框架的高度:

 int pages = floor(self.collectionView.contentSize.height / self.collectionView.frame.size.height) + 1; 

正确的答案应该是:

如果UICollectionView水平滚动:

 int pages = ceil(self.collectionView.contentSize.width / self.collectionView.frame.size.width); 

如果它垂直滚动:

  int pages = ceil(self.collectionView.contentSize.height / self.collectionView.frame.size.height); 

按照wiki :

在math和计算机科学中,floor和ceiling函数分别将实数映射到最大的前一个或最小的后一个整数。 更确切地说,floor(x)是不大于x的最大整数,ceiling(x)是不小于x的最小整数。

这是我的结果检查:

 ceil(2.0/5.0) = 1.000000 ceil(5.0/5.0) = 1.000000 ceil(6.0/5.0) = 2.000000 ceil(10.0/5.0) = 2.000000 ceil(11.0/5.0) = 3.000000