【问题标题】:Pinch to Zoom a UIImageView in CollectionView Cell在 CollectionView 单元格中捏合以缩放 UIImageView
【发布时间】:2017-12-31 20:57:10
【问题描述】:

我正在尝试添加 IBAction 以将图像捏合和缩放到自定义单元格类,但情节提要给出了一个错误,即操作不能针对重复内容。 这是自定义单元格类:

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 连接到按钮以在同一单元格中显示/隐藏标题,那么为什么不允许捏合?如何在单元格中捏合和缩放图像?

【问题讨论】:

  • UICollectionViewCell?您需要使用闭包或其他任何东西并让视图控制器处理它。
  • 感谢您的帮助,我通过在 awakeFromNib() 方法中创建捏合手势并将其附加到那里的 imageView 来解决它。

标签: ios swift uicollectionviewcell


【解决方案1】:

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

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

其他一切都是一样的。

【讨论】:

    猜你喜欢
    • 2017-09-23
    • 2020-10-01
    • 2015-07-12
    • 2012-11-24
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 2019-11-13
    • 1970-01-01
    相关资源
    最近更新 更多