In swift like below Register Header View collectionView.register(HeaderView.self, forSupplementaryViewOfKind: UICollectionView.elementKindSectionHeader, withReuseIdentifier: “headerView”) In UICollectionViewDataSource func collectionView(collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, atIndexPath indexPath: NSIndexPath) -> UICollectionReusableView { let headerView = collectionView.dequeueReusableSupplementaryViewOfKind(UICollectionElementKindSectionHeader, withReuseIdentifier: “headerView”, forIndexPath: indexPath) headerView.frame.size.height = 100 return headerView } Important is that you are supply the flow layout with the header size flowLayout.headerReferenceSize = … Read more