考慮啓用流佈局和分頁的UICollectionView
(通過將pagingEnabled
設置爲YES
)。在iOS中使用分頁的UICollectionView的頁數
獲得總頁數的最簡單方法是什麼?
哪裏可以找到最合適的位置來更新頁面總數(假設如果項目被添加/刪除,集合視圖的大小改變或佈局改變,它可能會改變)?
考慮啓用流佈局和分頁的UICollectionView
(通過將pagingEnabled
設置爲YES
)。在iOS中使用分頁的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;
正確的答案應該是:
如果UICol lectionView水平滾動:
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:
在數學和計算機科學,地板和天花板功能 映射一個實數到最大的前一個或最小的後續 整數。更確切地說,floor(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
這假定沒有間距,並且所有項目具有相同的寬度和高度。 – hpique
難道你不能使用'ceil'來代替'floor'並添加1嗎? – swilliams
如果'content.width'和'frame.size.width'相等,那麼'ceil'會更'準確,因爲如果技術上只有一個頁面,最終會得到'2'。 –