在iOS的寻呼UICollectionView的页数(Page count of UICollect

2019-07-03 22:01发布

考虑一个UICollectionView与流布局和寻呼启用(通过设置pagingEnabledYES )。

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

哪里会是最合适的地方,以更新的总页数(因为如果项目添加/删除它可能会改变,收集视图更改或布局更改的大小)?

Answer 1:

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


Answer 2:

正确的答案应该是:

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

遵循维基 :

在数学和计算机科学,地板和天花板的功能分别映射一个实数最大的前一个或以下的最小整数。 更确切地说,地板(x)是最大的整数不大于x和天花板(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


文章来源: Page count of UICollectionView with paging in iOS