UICollectionView
フロー レイアウトとページングが有効になっている ( に設定pagingEnabled
することにより)を検討してくださいYES
。
総ページ数を取得する最も簡単な方法は何ですか?
また、総ページ数を更新するのに最も適切な場所はどこでしょうか (アイテムが追加/削除されたり、コレクション ビューのサイズが変更されたり、レイアウトが変更されたりすると変更される可能性があることを考えると)?
UICollectionView
フロー レイアウトとページングが有効になっている ( に設定pagingEnabled
することにより)を検討してくださいYES
。
総ページ数を取得する最も簡単な方法は何ですか?
また、総ページ数を更新するのに最も適切な場所はどこでしょうか (アイテムが追加/削除されたり、コレクション ビューのサイズが変更されたり、レイアウトが変更されたりすると変更される可能性があることを考えると)?
正しい答えは次のとおりです。
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 関数と 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
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;