9

考虑UICollectionView启用流布局和分页(通过设置pagingEnabledYES)。

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

哪里是更新页面总数的最合适的地方(假设如果添加/删除项目,集合视图的大小发生变化或布局发生变化,它可能会发生变化)?

4

2 回答 2

8

正确答案应该是:

如果 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);

按照维基

在数学和计算机科学中,下限和上限函数分别将实数映射到最大的前一个整数或最小的后一个整数。更准确地说,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
于 2015-02-06T09:06:28.407 回答
6

如果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;
于 2012-12-07T11:52:02.940 回答