             let threshold = (self.myDataSource == nil) ? defaultThresholdOfZoom : self.myDataSource!.thresholdOfZoom(self)
             if (self.collectionViewLayout as? UICollectionViewTransitionLayout)?.transitionProgress > threshold {
                 self.finishInteractiveTransition()
-                self.numberOfCells = self.nextNumberOfCells()
+                self._numberOfCells = self.nextNumberOfCells()
             } else {
                 self.cancelInteractiveTransition()
             }

            let min = (self.myDataSource == nil) ? DefaultNumberOfCells.min : self.myDataSource!.minNumberOfCellsInLine(self)
            let max = (self.myDataSource == nil) ? DefaultNumberOfCells.max : self.myDataSource!.maxNumberOfCellsInLine(self)
            
            if gesture.scale > 1.0 && self.numberOfCells > min {
                self.zoomingStatus = .zoomIn
                self.myDelegate?.willPinchOut(self)
            } else if self.numberOfCells < max {
                self.zoomingStatus = .zoomOut
                self.myDelegate?.willPinchIn(self)
            }

    private func nextNumberOfCells() -> Int {
        switch (self.zoomingStatus) {
        case .zoomIn:
            return self._numberOfCells - 1
        case .zoomOut:
            return self._numberOfCells + 1
        default:
            return self._numberOfCells
        }
    }
    
