Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pitiphong-p/CollectionViewShelfLayout

A UICollectionViewLayout subclass displays its items as rows of items similar to the App Store Feature tab without a nested UITableView/UICollectionView hack.
https://github.com/pitiphong-p/CollectionViewShelfLayout

Last synced: 10 days ago
JSON representation

A UICollectionViewLayout subclass displays its items as rows of items similar to the App Store Feature tab without a nested UITableView/UICollectionView hack.

Awesome Lists containing this project

README

        

# CollectionViewShelfLayout
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.

![CollectionViewShelfLayout screenshot](https://cocoacontrols-production.s3.amazonaws.com/uploads/control_image/image/9666/CollectionViewShelfLayout_small.png)

# Requirements
- 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.

# Installation
## Manaully
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!!!
````swift
import CollectionViewShelfLayout
````
## CocoaPods
Add the following to your `Podfile`
````ruby
pod 'CollectionViewShelfLayout'
use_frameworks!
````
## Carthage
Add the following to your `Cartfile`
````ruby
github "pitiphong-p/CollectionViewShelfLayout"
````
## Swift 2
You can use CollectionViewShelfLayout in Swift 2.2 by checking out tag `0.5.5`
## Swift 4.0
You can use CollectionViewShelfLayout in Swift 4.0 by checking out tag `0.6.4`
## Swift 4.2
You can use CollectionViewShelfLayout in Swift 4.0 by checking out tag `0.6.5`

# Usage
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`.
````swift
let shelfLayout = CollectionViewShelfLayout()
shelfLayout.itemSize = CGSize(width: 100, height: 180)
collectionView.collectionViewLayout = shelfLayout
````

# Demo App
`CollectionViewShelfLayout` project comes with a demo app target. You can see `CollectionViewShelfLayout` in action by just running `AppStoreCollectionViewLayout-Demo` demo app target.
# Contact
Pitiphong Phongpattranont
- [@pitiphong_p on Twitter] (https://twitter.com/pitiphong_p)

# License
`CollectionViewShelfLayout` is released under an MIT License.
Copyright © 2016-present Pitiphong Phongpattranont.