     func handleCollectPanGesture(recognizer:UIPanGestureRecognizer) {
         if recognizer.state == UIGestureRecognizerState.Began {
             let velocity = recognizer.velocityInView(view)
+            locationInViewX = recognizer.locationInView(collectionView).x
+            locationRatio = locationInViewX / (cellGap + normalCellWidth)
             if fabs(velocity.x) <= fabs(velocity.y) {
+                collectionView.panGestureRecognizer.enabled = false
                 isPanVertical = true
             }
         } else if recognizer.state == UIGestureRecognizerState.Changed {

                if translation.y >= 0 {
                    let newCellWidth = normalCellWidth - (translation.y * minCellRatio * normalCellWidth) / CELL_NORMAL_HEIGHT
                    let newCellHeight = CELL_NORMAL_HEIGHT - translation.y * minCellRatio
                    let newCellGap = newCellWidth / normalCellWidth * cellGap
                    collectLayout.itemSize = CGSizeMake(newCellWidth, newCellHeight)
                    collectLayout.minimumLineSpacing = newCellGap
                    collectLayout.sectionInset = UIEdgeInsetsMake(CELL_NORMAL_HEIGHT - newCellHeight, newCellGap, 0, newCellGap)
                }
            }
        } else {
            isPanVertical = false
        }
    }

    }
    private var panCollect:UIPanGestureRecognizer = UIPanGestureRecognizer()
    private var isPanVertical:Bool = false
    private var locationInViewX:CGFloat = 0
    private var locationRatio:CGFloat = 0
    
    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)
