Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone iOS中分页的UICollectionView的页数_Iphone_Ios_Ios6_Uipagecontrol_Uicollectionview - Fatal编程技术网

Iphone iOS中分页的UICollectionView的页数

Iphone iOS中分页的UICollectionView的页数,iphone,ios,ios6,uipagecontrol,uicollectionview,Iphone,Ios,Ios6,Uipagecontrol,Uicollectionview,考虑启用流布局和分页的UICollectionView(通过将paginabled设置为YES) 获取总页数的最简单方法是什么 哪里是更新总页数的最合适位置(考虑到如果添加/删除项目、集合视图的大小更改或布局更改,页面总数可能会更改)?如果UICollectionView水平滚动,您可以将其contentSize的宽度除以框架的宽度: int pages = floor(self.collectionView.contentSize.width / s

考虑启用流布局和分页的
UICollectionView
(通过将
paginabled
设置为
YES

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


哪里是更新总页数的最合适位置(考虑到如果添加/删除项目、集合视图的大小更改或布局更改,页面总数可能会更改)?

如果
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水平滚动:

如果垂直滚动:

跟进:

在数学和计算机科学中,地板和天花板起作用 将实数映射到最大的前一个或最小的后一个 分别为整数。更准确地说,地板(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

这假设没有间距,所有项目都具有相同的宽度或高度。难道你不能使用
ceil
而不是获得
floor
并添加1吗?使用
ceil
不是更准确,因为如果
content.width
frame.size.width
相等,你最终得到的结果是
2
,技术上只有一页的时候?
 int pages = ceil(self.collectionView.contentSize.height /    
                   self.collectionView.frame.size.height);
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