Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/ChernyshenkoTaras/SquareFlowLayout

🌄 UICollectionViewLayout subclass inspired by Instagram Discover page style layout.
https://github.com/ChernyshenkoTaras/SquareFlowLayout

collectionview collectionviewlayout swift swift-library uicollectionview uicollectionviewflowlayout

Last synced: about 2 months ago
JSON representation

🌄 UICollectionViewLayout subclass inspired by Instagram Discover page style layout.

Awesome Lists containing this project

README

        

# SquareFlowLayout
![Swift 4.2.x](https://img.shields.io/badge/Swift-4.2.x-orange.svg)
![License](https://img.shields.io/badge/License-MIT-blue.svg)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)

Smiley face

Makes your `UICollectionView` to looks like Instagram explore has never been so easy before. `SquareFlowLayout` provide dynamic layout generation by defining which IndexPath should be expanded.

## Installation

#### CocoaPods

`pod 'SquareFlowLayout'`

#### Manually

1. Download and drop ```Classes``` folder into your project.
2. Congratulations!

## Usage

1. Set `SquareFlowLayout` to your UICollectionView and set it `flowDelegate`

```
let flowLayout = SquareFlowLayout()
flowLayout.flowDelegate = self
self.collectionView.collectionViewLayout = flowLayout
```

2. Make your class conform to `SquareFlowLayoutDelegate`
3. Use delegate method to decide which cell should be pinned
```
extension ViewController: SquareFlowLayoutDelegate {
func shouldExpandItem(at indexPath: IndexPath) -> Bool {
return self.layoutValues[indexPath.row] == .expanded
}
}
```
4. Look into example project for more info



## Contributing to this project

If you like this tool, show your support by tell me how do u use it.

## License

This code is distributed under the terms and conditions of the [MIT license](LICENSE).