/SNCollectionViewLayout

Collection View Layouts is a set of custom flow layouts for iOS which imitate general data grid approaches for mobile apps.

Primary LanguageSwiftMIT LicenseMIT

SNCollectionViewLayout

CI Status Version License Platform

ScreenShots

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'

Author

ahmedAlmasri, ahmed.almasri@ymail.com

License

SNCollectionViewLayout is available under the MIT license. See the LICENSE file for more info.