UICollectionView - redimensionnement des cellules du dispositif de rotation - Swift

J'ai créé un UICollectionView, afin que je puisse organiser des vues de l'soigné colonnes. J'aimerais qu'il y ait une seule colonne sur les périphériques > 500 pixels de large.

Afin de parvenir à cela, j'ai créé cette fonction:

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
    let size = collectionView.frame.width
    if (size > 500) {
        return CGSize(width: (size/2) - 8, height: (size/2) - 8)
    }
    return CGSize(width: size, height: size)
}

Cela fonctionne comme prévu sur la première charge, cependant lorsque je l'ai faites pivoter l'appareil, le calcul n'est pas toujours le cas à nouveau, et les points de vue ne sont pas toujours redessiner comme prévu. Voici mon code pour lors de la rotation de l'appareil:

override func willRotateToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) {
    collectionView.collectionViewLayout.invalidateLayout()
    self.view.setNeedsDisplay()
}

Je suppose que j'ai oublié de redessiner quelque chose, mais je ne suis pas sûr de ce que. Toutes les idées sont très gratitude reçu!

InformationsquelleAutor Ben | 2015-12-07