UICollectionViewのreloadData()直後に確実にvisibleCellsを取得したい

Sunday, February 7, 2016

UICollectionViewで、 reloadData() を呼んだ直後は、visibleCells()でCellがうまく取得できない場合があります。

    collectionView.reloadData()
    print(collectionView.visibleCells()) // 取れたり取れなかったり..。

そんなときは、以下のように、layoutIfNeeded()を呼んであげると、正確に取得することができます。

    collectionView.reloadData()
    collectionView.layoutIfNeeded()
    print(collectionView.visibleCells()) // 取得できる!

同様に、 cellForItematIndexPath() でもvisibleなcellなら取得できるようになります。

techiOSSwifttips

UICollectionViewで、完全に表示されているcellのみを取得する

UIView/UIImageをPDFに変換するライブラリ、PDFGeneratorを作成しました