Sticky headers for UICollectionView written in pure Swift
Based on CSStickyHeaderFlowLayout. StickyHeaderFlowLayout
makes it easy to create sticky headers in UICollectionView
.
You can use CocoaPods to install StickyHeaderFlowLayout
by adding it to your Podfile
:
platform :ios, '9.0'
target 'MyApp' do
pod 'StickyHeaderFlowLayout'
end
To use this library in your project manually you may:
Just drag StickyHeaderFlowLayout.swift
and StickyHeaderFlowLayoutAttributes.swift
to the project tree
Repository contains small sample project which shows basic integration.
- Create layout and collection view
let layout = StickyHeaderFlowLayout()
let collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout)
- Setup sticky header
collectionView.register(CollectionParallaxHeader.self, forSupplementaryViewOfKind: StickyHeaderFlowLayout.parallaxHeaderIdentifier, withReuseIdentifier: "parallaxHeader")
layout.parallaxHeaderReferenceSize = CGSize(width: view.frame.size.width, height: 200)
layout.parallaxHeaderMinimumReferenceSize = CGSize(width: view.frame.size.width, height: 160)
- Return correct view in
viewForSupplementaryElementOfKind
function
override func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
if kind == StickyHeaderFlowLayout.parallaxHeaderIdentifier {
return collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "parallaxHeader", for: indexPath)
}
// Other views.
...
}
StickyHeaderFlowLayout
is released under the MIT license. See LICENSE
for details.