2017-12-31 121 views
0

イメージをカスタムセルクラスにピンチしてズームするためにIBActionを追加しようとしていますが、ストーリーボードで繰り返しコンテンツをターゲットにできないというエラーが発生します。ここ は、カスタムセルクラスです:CollectionViewセルのUIImageViewをピンチで拡大/縮小する

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を接続することができ、なぜピンチが許可されていませんか?どのようにしてセルの画像をつまんでズームしますか?

+0

UICollectionViewCell?クロージャーなどを使用して、ビューコントローラーに処理させる必要があります。 –

+0

あなたの助けてくれてありがとう、awakeFromNib()メソッドでピンチジェスチャーを作成し、それをそこのimageViewにアタッチして解決しました。 – fullMoon

答えて

0

私はストーリーボードから、ピンチジェスチャーを削除し、awakeFromNib()メソッドでそれを作成することによって、それを解決:他に

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

すべてが同じです。

関連する問題