CocoaPods trunk is moving to be read-only. Read more on the blog, there are 18 months to go.

CCView 1.1.3

CCView 1.1.3

Maintained by Harsh Srivastava.



CCView 1.1.3

  • By
  • HarshSrivastava

CCView

You want to add pod 'CCView', '~> 1.1.3' similar to the following to your Podfile:

target 'MyApp' do
pod 'CCView', '~> 1.1.3'
end

Then run a pod install inside your terminal, or from CocoaPods.app.

How to use?

First Import the class where you want to use CCView

import CCView

Create UICollectionViewController and UICollectionViewCell class with XIB and change the class type to CCCollectionViewController and CCCollectonViewCell respectively

For UICollectionViewController:-

class CollectionViewController: CCCollectionViewController,UICollectionViewDelegateFlowLayout {
.
.
.
.
 }

For UICollectionViewCell

class CollectionViewCell: CCCollectionViewCell {
.
.
.
.
}

Modification required in UICollectionViewController

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell:CollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! CollectionViewCell
.
.
self.toggleCell(cellInstance: cell, indexPath: indexPath, for: 0.5) //0.5 is the duration for animaiton
.
.
return cell
}

override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
.
.
.
self.expandCell(collectionView, at: indexPath, for: 0.7) //0.7 is the durartion for animation

}

or call self.expandCell(collectionView, at: indexPath, for: duration) on the expand action in the cell

For UICollectionViewCell

Create a CollectionViewCell Class with XIB and create similar layout as in demo for desired results and add the code below in your CCCollecitonViewCell class

override���� func defaultLayoutForClosedCell(lowerDetailsView:UIView,lowerView:UIView) -> Void {
          super.defaultLayoutForClosedCell(lowerDetailsView:lowerDetailsView,lowerView:lowerView)
          self.lowerDetailsView.isHidden = true
          self.lowerView.transform = CGAffineTransform(scaleX: 0.3, y: 0.3)
          self.layoutIfNeeded()
}


override func animateCloseCell(lowerDetailsView:UIView,lowerView:UIView,animationDuration:Double) -> Void {
          super.animateCloseCell(lowerDetailsView:lowerDetailsView,lowerView:lowerView,animationDuration:animationDuration)
          UIView.animate(withDuration: animationDuration) {
              self.lowerDetailsView.isHidden = true
              self.lowerView.transform = CGAffineTransform(scaleX: 0.3,y: 0.3)
              self.layoutIfNeeded()
        }
}

override func animateCellOpen(lowerDetailsView:UIView,lowerView:UIView,animationDuration:Double) -> Void {
          super.animateCellOpen(lowerDetailsView:lowerDetailsView,lowerView:lowerView,animationDuration:animationDuration)
          UIView.animate(withDuration: animationDuration) {
              self.lowerView.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)
              self.lowerDetailsView.isHidden = false
              self.layoutIfNeeded()
          }
}

Demo App gif

Demo App link

![Demo Example][https://github.com/harshsrivastavaglobussoft/CCViewDemo]

Requirements:-

  • XCode 9.4 +
  • Swift 4

Author

Harsh Srivastava