2016-08-12 6 views
2

私はを追加するUIViewを持っており、カルーセルのように見えるバナービューとして機能します。 UIViewが存在するViewcontrollerは、pageviewcontrollerの一部です。UICollectionViewCellはランダムに非表示になります

PageVC - >UIViewController - >UIView - >UICollectionViewです。

各VCには独自のバナーがありますので、ページをスワイプするとcollectionViewにそれぞれのデータがリロードされて表示されます。今訪問したページを訪問すると、collectionviewセルが消えます。 collectionviewは見えますが、セルは何とか隠されています。

collectionviewセルはカスタムセルで、私はカスタムレイアウトを使用していません。デフォルトのflowlayoutを使用しています。これはiOS8-devicesで問題なく動作しています。以下は

は、デバッガ出力、ある セルが表示されているとき:

CollectionViewCell: 0x7f9db8d9ffa0; baseClass = UICollectionViewCell; frame = (209 3.5; 209 96); clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x7f9dbb5dde60>> 

見えない(その今隠されたあなたが見ることができる)dequedセルが非表示になっている、何の手がかりは、なぜそれが起こっていない

CollectionViewCell: 0x7f9dbb5897e0; baseClass = UICollectionViewCell; frame = (0 3.5; 209 96); clipsToBounds = YES; hidden = YES; opaque = NO; layer = <CALayer: 0x7f9dbb590220>> 

indexPathsForVisibleItemsはnilを返しています。

答えて

3

私は(かもしれない)、特に私がupdateconstraints方法でreloadDataを書かれているので、各マイナーな制約変更reloadDataに呼び出さなっていた混乱するシステムを引き起こした複数の場所からreloadDataを呼んでいました。

reloadDataと同じ問題が発生している場合は、collectionviewと表示されている場所をすべて確認してください。

1

同じ問題が発生しました。

  • UICollectionView reloadDataが多呼び出すreloadDataまたはupdateconstraints

についての例があるかどうかをチェックするMainThread
  • 以外のいくつかのスレッドで呼び出されたかどうかをチェックします

    私の問題を解決することなく、私はいくつかの機会にそれが実現したcollectionView:layout:sizeForItemAtIndexPath:のCGSizeZeroが返されました。

    CGSizeZeroの結果を避けると、すべてうまくいきます。

  • 1

    同じ問題。

    私の状況は次のとおりです。

    マイコレクションビューにはカスタムレイアウトがあります。私は問題なくデフォルトのフローレイアウトを使用します。

    カスタムレイアウトを使用すると、セル幅が画面幅の半分になります。 5番目のセルにスクロールすると、すべてのセルが理由なく非表示になりました。

    最後に、がストーリーボードのレイアウトクラスでセルのサイズを正しく設定すると、問題が解決されることがわかりました。

    これが役に立ちます。

    関連する問題