CarLensCollectionViewLayout

by netguru

An easy-to-use Collection View Layout for card-like animation.

460 Stars 28 Forks Last release: over 1 year ago (1.2.0) MIT License 74 Commits 3 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

CarLensCollectionViewLayout

An easy-to-use Collection View Layout for card-like animation 🎉

CarLensCollectionViewLayout was created out of the implementation in CarLens application 🚘. The image above exactly shows the screen from the app!

Requirements

CarLensCollectionViewLayout is written in Swift 4.2 and supports iOS 9.0+.

Usage

Basic Usage

The two main steps are needed for the configuration of CarLensCollectionViewLayout:

Step 1

Assign

CarLensCollectionViewLayout
to yours collection view layout:
swift
collectionView.collectionViewLayout = CarLensCollectionViewLayout()
or initialize your collection view with
CarLensCollectionViewLayout
:
swift
UICollectionView(frame: .zero, collectionViewLayout: CarLensCollectionViewLayout())

Step 2

Subsclass

CarLensCollectionViewCell
and call
configure(topView: UIView, cardView: UIView)
during the cell’s initialization:
swift
class CollectionViewCell: CarLensCollectionViewCell {
    override init(frame: CGRect) {
    super.init(frame: frame)
    configure(topView: upperView, cardView: bottomView)
    }
}
The sample implementation is available in Demo project.

Customization

Layout

You can also initialize

CarLensCollectionViewLayout
with a
CarLensCollectionViewLayoutOptions
object by passing any of the parameters available. Others will be configured automatically.

Parameters:

minimumSpacing
- A minimum spacing between cells.

decelerationRate
- A deceleration for a scroll view.

shouldShowScrollIndicator
- A value indicating whether collection view should have a scroll indicator.

itemSize
- The size to use for cells.

Example:

swift
let options = CarLensCollectionViewLayoutOptions(minimumSpacing: 40)
collectionView.collectionViewLayout = CarLensCollectionViewLayout(options: options)

Cell

While subsclassing

CarLensCollectionViewCell
you can call
configure(...)
with an additional parameter
topViewHeight
. The card view height will be calculated based on this value.

Example:

swift
class CollectionViewCell: CarLensCollectionViewCell {
    override init(frame: CGRect) {
    super.init(frame: frame)
    configure(topView: upperView, cardView: bottomView, topViewHeight: 300)
    }
}

Installation

CocoaPods

If you're using CocoaPods, add the following dependency to your

Podfile
:
use_frameworks!
pod 'CarLensCollectionViewLayout', '~> 1.2.0'

Carthage

If you're using Carthage, add the following dependency to your

Cartfile
:
github "netguru/CarLensCollectionViewLayout" ~> 1.2.0

About

This project is made with ❤️ by Netguru and maintained by Anna-Mariia Shkarlinska.

License

CarLensCollectionViewLayout is licensed under the MIT License. See LICENSE.md for more info.

Read More

Related Links

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.