custom collection view layout that allows you to page by cell, not screen
use cocoapods to install PagingCollectionViewLayout
by adding it to your Podfile
:
platform :ios, '9.0'
use_frameworks!
pod 'PagingCollectionViewLayout'
import PagingCollectionViewLayout
add PagingCollectionViewLayout.swift
to your project
instantiate a layout property
let layout = PagingCollectionViewLayout()
set the following properties
layout.itemSize =
layout.minimumLineSpacing =
layout.scrollDirection = .horizontal
instantiate a collection view using the layout property
let collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout)
for snappy scrolling set the following
collectionView.decelerationRate = .fast
collectionView.isPagingEnabled = true
layout.scrollDirection = .vertical
or since the default is vertical
layout.scrollDirection = .horizontal
- center the item in focus
- allow the previous item to be visible
set the following property
layout.sectionInset =
- horizontal collection view - set left and right insets
- vertical collection view - set top and bottom insets
layout.velocityThresholdPerPage
determines the velocity needed to skip an item (default = 2.0)
- a non zero swipe velocity will result in the collection view scrolling to the prev/next item
- the number of items skipped = swipe velocity / velocityThresholdPerPage
layout.numberOfItemsPerPage = 2