CKWaveCollectionViewTransition

This is a cool custom transition between two or more UICollectionViewControllers with wave like cell animation. Could be used in e.g. galleries.

Cool wave like transition between two or more UICollectionView.

anim.gif

Animation idea was taken from Łukasz Frankiewicz Dribble project

Installation

There are two options:

  • Via CocoaPods.
  • Manually add the files into your Xcode project. Slightly simpler, but updates are also manual.

Usage

  • In storyboard add object in your NavigationController.

object.jpg

  • Set it's class to NavigationControllerDelegate

objectCustomClass.jpg

  • Set NavigationController delegate to this object.

navigationControllerDelegateObject.jpg

or

Implement UINavigationControllerDelegate in your ViewController:

func navigationController(navigationController: UINavigationController, animationControllerForOperation operation: UINavigationControllerOperation,
        fromViewController fromVC: UIViewController, toViewController toVC: UIViewController) -> UIViewControllerAnimatedTransitioning? {
            
            let animator = CKWaveCollectionViewAnimator()
            
            if operation != UINavigationControllerOperation.Push {
                
                animator.reversed = true
            }
            
            return animator
    }
Swift
  • The last thing you have to set is self.selectedIndexPath property in your didSelectItemAtIndexPath method implementation.
override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
        
        self.selectedIndexPath = indexPath
...

}
Swift

Properties

internal let animationDuration: Double! = 1.0
Swift

Total animation duration

internal let kCellAnimSmallDelta: Double! = 0.01
Swift

Small delay between cell animations

internal let kCellAnimBigDelta: Double! = 0.03
Swift

Big delay between cell animations

Requirements

  • iOS 7.0+

GitHub

Cool wave like transition between two or more UICollectionViewRead More

Latest commit to the master branch on 10-13-2019
Download as zip