双指缩放 CollectionView 单元格中的 UIImageView

Pinch to Zoom a UIImageView in CollectionView Cell

我正在尝试添加一个 IBAction 来将图像缩放到自定义单元格 class,但故事板给出了一个错误,指出操作不能针对重复内容。 这是自定义单元格 class:

class PhotoCell: UICollectionViewCell {

// Outlets
@IBOutlet weak var photoImgV: UIImageView!
@IBOutlet weak var captionTV: UITextView!
@IBOutlet weak var captionBtn: UIButton!
@IBOutlet weak var captionStackView: UIStackView!
@IBOutlet weak var likeCountLabel: UILabel!
@IBOutlet weak var comntCountLabel: UILabel!
@IBOutlet weak var pinch: UIPinchGestureRecognizer!

// Actions
@IBAction func pinch(sender:UIPinchGestureRecognizer) {
    if sender.state == .began || sender.state == .changed {
        let currentScale = self.photoImgV.frame.size.width / self.photoImgV.bounds.size.width
        let newScale = currentScale*sender.scale
        let transform = CGAffineTransform(scaleX: newScale, y: newScale)
        self.photoImgV.transform = transform
        sender.scale = 1
    }
}

@IBAction func showCaption(){
    UIView.animate(withDuration: 0.5) {
        if self.captionStackView.arrangedSubviews[1].isHidden {
            self.captionStackView.arrangedSubviews[1].isHidden = false
        }else{
            self.captionStackView.arrangedSubviews[1].isHidden = true
        }
    }
}

它允许我将一个 IBAction 连接到一个按钮到 show/hide 同一单元格中的标题,那么为什么不允许捏合?如何捏合和缩放单元格中的图像?

我通过从情节提要中删除捏合手势并在 awakeFromNib() 方法中创建它来解决它:

    override func awakeFromNib() {
    super.awakeFromNib()
    let pinch = UIPinchGestureRecognizer(target: self, action: #selector(self.pinch(sender:)))
     photoImgV.addGestureRecognizer(pinch)
}

其他都一样。