Swift 3.0 Example project of a UICollectionView using programmatic AutoLayout to display cells with varying heights
The project is commented so you can check what parts are important. Please note that the whole UI is created programmatically.
This is the view controller which is loaded by the initial navigation controller.
Please check this file to see how reusing cells has been extended, as well as activating autolayout constraints.