title: UICollectionView - resizing cells on device rotate - Swift
body: <p>I've created a UICollectionView, so that I can arrange views into neat columns. I'd like there to be a single column on devices > 500 pixels wide.</p>
  
  <p>In order to achieve this, I created this function:</p>
  
  <pre><code>func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -&gt; CGSize {
      let size = collectionView.frame.width
      if (size &gt; 500) {
          return CGSize(width: (size/2) - 8, height: (size/2) - 8)
      }
      return CGSize(width: size, height: size)
  }
  </code></pre>
  
  <p>This works as expected on first load, however when I rotate the device, the calculation doesn't always happen again, and the views don't always redraw as expected. Here's my code for when the device is rotated:</p>
  
  <pre><code>override func willRotateToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) {
      collectionView.collectionViewLayout.invalidateLayout()
      self.view.setNeedsDisplay()
  }
  </code></pre>
  
  <p>I'm assuming I've forgotten to redraw something, but I'm not sure what. Any ideas are very gratefully recieved!</p>