A set of custom flow layouts for iOS which imitate general data grid approaches
SNCollectionViewLayout
Collection View Layouts is a set of custom flow layouts for iOS which imitate general data grid approaches for mobile apps.
Example
To run the example project, clone the repo, and run pod install
from the Example directory first.
Using
1- Create instance
let snCollectionViewLayout = SNCollectionViewLayout()
snCollectionViewLayout.fixedDivisionCount = 4 // Columns for .vertical, rows for .horizontal
snCollectionViewLayout.delegate = self
myCollectionView.collectionViewLayout = snCollectionViewLayout
2- Delegate
// scale for items based number of columns
func scaleForItem(inCollectionView collectionView: UICollectionView, withLayout layout: UICollectionViewLayout, atIndexPath indexPath: IndexPath) -> UInt {
if indexPath.row == 0 || indexPath.row == 3 || indexPath.row == 10 || indexPath.row == 70 {
return 2
}
return 1
}
// height for item if set fixedDimension height equal width
func itemFlexibleDimension(inCollectionView collectionView: UICollectionView, withLayout layout: UICollectionViewLayout, fixedDimension: CGFloat) -> CGFloat {
return fixedDimension
}
// header height
func headerFlexibleDimension(inCollectionView collectionView: UICollectionView, withLayout layout: UICollectionViewLayout, fixedDimension: CGFloat) -> CGFloat {
return 0
}
Requirements
- Swift 4.2+
- Xcode 10.0+
- iOS 11.0+
Installation
SNCollectionViewLayout is available through CocoaPods. To install
it, simply add the following line to your Podfile:
pod 'SNCollectionViewLayout'