Latest 1.0.2
License MIT
Platforms ios 9.0
Frameworks UIKit

Swift-only implementation of YRCoverFlowLayout. Also supports CocoaPods.
Only Swift 3 is supported.


This custom layout provides cover flow effect for UICollectionView. This project is a port of YRCoverFlowLayout to Swift, with CocoaPods support added.

From YRCoverFlowLayout description: You don’t need to worry about items(cells) positions, spaces between them, etc. because it’s already done in YRCoverFlowLayout! You simply design your cell and return them as usual in datasource methods and YRCoverFlowLayout handles the rest.


Portrait flow
Lanscape flow


  1. Add the following line to Podfile:
    pod 'LNICoverFlowLayout'
    and run pod install
  2. Set custom layout class in your collection view to LNICoverFlowLayout. Make sure you change the Module to LNICoverFlowLayout as well.
    Change Both Class and Module
  3. Add an outlet from the cover flow layout into your UICollectionView dataSource class. You can customize the cover flow layout using the outlet, as shown below.
    Customize Layout
  4. Design your cell in collection view.
  5. Return your cell in datasource methods.
  6. Scroll and enjoy.

See included demo for more information.


There are 4 properties that can be customized:

Max degree of rotation for items. Default to 45. This means that item on a left side of screen will be rotated 45 degrees around y and item on a right side will be rotated -45 degrees around y. In Swift implementation, this ranges between -360 and 360.

public var maxCoverDegree:CGFloat

This property means how neighbour items are placed to in relation to currently displayed item. Default to 1/4. This means that item on left will cover 1/4 of current displayed item and item from right will also cover 1/4 of current item. Value should be in 0..1 range. In Swift implementation, the range is enforced.

public var coverDensity:CGFloat

Min opacity that can be applied to individual item.
Default to 1.0 (alpha 100%). In Swift implementation, the range is enforced.

public var minCoverOpacity:CGFloat

Min scale that can be applied to individual item.
Default to 1.0 (no scale).

public var minCoverScale:CGFloat

If you’re changing them at runtime – don’t forget to call collectionView.reloadData()


Currently only horizontal scroll direction is supported.
In future releases vertical scrolling will be added too.


Cover flow, custom layout, collection view, swift



Latest podspec

    "name": "LNICoverFlowLayout",
    "version": "1.0.2",
    "summary": "Swift-only implementation of YRCoverFlowLayout. Also supports CocoaPods.",
    "description": "Re-implemented YRCoverFlowLayout in Swift 3.nVersion 1.0.2 closes issue 9.nnSupports CocoaPods. You can also drag & drop the single Swift file but using CocoaPods is recommended.",
    "homepage": "",
    "license": "MIT",
    "authors": {
        "Sumit Chawla": "[email protected]"
    "source": {
        "git": "",
        "tag": "1.0.2"
    "social_media_url": "",
    "platforms": {
        "ios": "9.0"
    "source_files": "LNICoverFlowLayout/Classes/**/*",
    "frameworks": "UIKit",
    "pushed_with_swift_version": "3.0"

Pin It on Pinterest

Share This