A UICollectionViewLayout subclass displays its items as rows of items similar to the App Store Feature tab without a nested UITableView/UICollectionView hack. You can use a single data source for all of your contents. Each section displays its items in a row. CollectionViewShelfLayout supports collection view's header view and footer view similar to table view's tableHeaderView and tableFooterView also sections' header and footer views too.
- iOS 9+
- Swift 4.0+
This requirement is due to usage of some Auto Layout APIs available in iOS 8 and 9 or later.
If you want to use CollectionViewShelfLayout in iOS 8, you can replace NSLayoutAnchor usage with other APIs.
This project comes with built in CollectionViewShelfLayout framework target. You can drag CollectionViewShelfLayout.xcproj file into your project, add CollectionViewShelfLayout framework target as a target dependency and link/embed that framework. and Voila!!!
import CollectionViewShelfLayoutAdd the following to your Podfile
pod 'CollectionViewShelfLayout'
use_frameworks!Add the following to your Cartfile
github "pitiphong-p/CollectionViewShelfLayout"You can use CollectionViewShelfLayout in Swift 2.2 by checking out tag 0.5.5
You can use CollectionViewShelfLayout in Swift 4.0 by checking out tag 0.6.4
You can use CollectionViewShelfLayout in Swift 4.0 by checking out tag 0.6.5
Set collecion view's layout to an instance of CollectionViewShelfLayout. Set the layout's properties you want (eg. cellSize). You can set its layout both via code or Storyboard.
let shelfLayout = CollectionViewShelfLayout()
shelfLayout.itemSize = CGSize(width: 100, height: 180)
collectionView.collectionViewLayout = shelfLayoutCollectionViewShelfLayout project comes with a demo app target. You can see CollectionViewShelfLayout in action by just running AppStoreCollectionViewLayout-Demo demo app target.
Pitiphong Phongpattranont
- [@pitiphong_p on Twitter] (https://twitter.com/pitiphong_p)
CollectionViewShelfLayout is released under an MIT License.
Copyright © 2016-present Pitiphong Phongpattranont.
