     let tagFontSize: CGFloat = 11
     let tagHeight: CGFloat = 30
     let cellIdentifier = "MealTagCell"
+    var delegate: MealTagViewCellDelegate?
     var tagTitles = ["this is a dynamic answer that should work", "Best", "Veg", " answer that should",  "Apple", "Diet", "Must Every Week", "大块肉", "尖椒土豆丝", "蝙蝠侠大战超人", "家乡捞单呢吗这位您的二位"]
     
     override func awakeFromNib() {

                        originalTagView.alpha = 1
                    })
                }
                
            } else {
                return
            }
            self.draggedTagView = nil
            self.originalTagView = nil
        }
    }
    

    
    @objc private func handlePan(gestureRecognizer: UIPanGestureRecognizer) {
        let location  = gestureRecognizer.location(in: self.collectionView)
        switch gestureRecognizer.state {
        case .began:
            guard let indexPath = self.collectionView.indexPathForItem(at: location) else {
                print("Not in collection view")
                return
            }
            
            self.indexPathOfRemovedTag = indexPath
            if let originalTagView = self.collectionView.cellForItem(at: indexPath) as? MealTagCell,
                let parentView = self.superview {
                self.originalTagView = originalTagView
                let tagTitle = tagTitles[indexPath.row]
                draggedTagView = TagView(title: tagTitle)
                parentView.addSubview(draggedTagView!)
                draggedTagView?.alpha = 0
                draggedTagView?.snp.makeConstraints({ (make) in
                    make.size.equalTo(originalTagView)
                })
            }
        case .changed:
            if let originalTagView = originalTagView {
                if originalTagView.alpha > 0 {
                    originalTagView.alpha = 0
                }
            }
            
            if let draggedTagView = draggedTagView,
                let parentView = self.superview {
                if draggedTagView.alpha < 1 {
                    draggedTagView.alpha = 1
                }
                let convertedLocation = collectionView.convert(location, to: parentView)
                draggedTagView.center = convertedLocation
            }
        case .ended:
            if let originalTagView = self.originalTagView,
                let draggedTagView = self.draggedTagView {
                if distanceBetween(pointA: draggedTagView.center, pointB: originalTagView.center) > 50 {
