2013-05-02 9 views
5

フローレイアウトを使用してセルをレイアウトするUICollectionViewがあります。それは垂直スクロールです。UICollectionViewのセルレイアウトがコレクションビューの境界線から外れています

これは320x480の画面を塗りつぶし、常に96 * 96のカスタムUICollectionViewCellを表示します。サイズはInterface Builderで設定され、デリゲートはアイテムごとにアイテムサイズを設定するメソッドを実装しません。

左右に10 pxのインセットがあり、最小間隔は6 pxに設定されています。

したがって、横線ごとに3セルが発生します。

< -10-> < ---- 96 ----> < -6-> < ---- 96 ----> < -6-> < ---- 96 --- - > < -10-> = 320.

問題は、たまに1つの行に4つのセルがあることです。 4番目のセルはほとんど画面外です。次に、次の行に2つのセルのみを配置して補正します。フローレイアウトの全体的なポイントは、スクリーンを外してはいけない、改行レイアウトであるということです!

I画像を添付した:

enter image description here

2行目のほとんどが画面オフ第四の項目があることに注意してください。

私は本当に何が起こっているのか分かりません。セルはデータで動的に埋められますが、サイズは一定です。他のすべての行のセルはちょうどいいので、いくつかの行でこれが起こる理由はありません。

このエラーは、コレクションビューが更新されるたびに異なる場所で発生します。すなわち、それは2行目で起こるかもしれませんし、更新が起こったら10行目で起こるかもしれません。

コレクションビューはタイマーによって更新されています。タイマーは本質的にいくつかのデータを処理する関数を呼び出し、それからdispatch_asyncを使って(メインキューに)バッキングデータを含む配列を更新し、[collectionView reloadData]を呼び出します。だから私はメインスレッドから離れて任意のスレッドからコレクションビューを更新していない。バッキングアレイは、メインキューとその機能でのみ更新されます。他の場所からではありません。

誰かが間違っている可能性について私にいくつかの提案をしてもらえますか?

おかげで

答えて

関連する問題