4

UICollectionViewFlowLayout を持つ UICollectionView があります。大規模なデータ (5,000 以上のセル) をテストしているときに、読み込み時に遅延が発生することに気付きました。sizeForItemAtIndexPathロード時に、すべてのセルに対して が呼び出されることがわかりました。アプリケーションのようなメッセージングを行っており、各セルの高さが異なるため、高さの推定が発生します。ビューをロードするだけで、一番下までスクロールすることはありません。

私が言っていることを示す小さなアプリを作成しました (コンソールを見てsizeForItemAtIndexPath、すべてのセルを呼び出していることを確認してください) https://github.com/ftheo/CollectionViewLoadingBug

どんな助けでも大歓迎です。ありがとう

4

2 に答える 2

3

おそらく、 sizeForItemAtIndexPath メソッドの呼び出しを防ぐ方法はありません...

これは、スクロール コンテンツのビュー サイズを計算するための通常の設計です。

于 2015-07-09T13:21:59.527 に答える
1

コレクション ビューは、コンテンツのサイズを知る必要があるため、 を呼び出します-sizeForItemAtIndexPath:。これを回避する方法はありません。

UITableView代わりにa の使用を検討してください。-tableView:estimatedHeightForRowAtIndexPath:画面外のセルを大まかに推測する方法を提供します 。

于 2015-07-09T13:30:40.863 に答える