【问题标题】:Recognize which View calls the Tap function识别哪个 View 调用了 Tap 函数
【发布时间】:2016-11-04 10:56:57
【问题描述】:

我知道如何向UIImageView 添加可点击性,但是,有 2 个图像视图,我想区分它们以调用正确的函数。但是,我似乎无法获得正确的sender

 func addTappability (view imageView:UIImageView){
    //add tapping function for image

    let tapGestureRecognizer = UITapGestureRecognizer(target:self, action:#selector(IdCardViewController.imageTapped(_:)))
    imageView.isUserInteractionEnabled = true
    imageView.addGestureRecognizer(tapGestureRecognizer)
}

func imageTapped(_ sender: UIImageView) {

    //Problem here, can't get correct sender
    if ( sender == photoImageViewLeft) {
        //do one thing
    }else {
        //do the other
    }
}

【问题讨论】:

  • 可以加标签区分
  • @Misha 你能在答案中添加一些代码吗,谢谢
  • @BhavinRamani 谢谢
  • @TaxiNoiBaiHaNoi 欢迎:)

标签: ios uiimageview swift3


【解决方案1】:

用这个替换你的函数:

func imageTapped(_ sender: UITapGestureRecognizer) {

    if let imageView = sender.view as? UIImageView {
        if ( imageView == photoImageViewLeft ) {
            print("Image1 Tapped")
        }else {
            print("Image2 Tapped")
        }

    }
}

【讨论】:

    【解决方案2】:

    您需要在情节提要或代码中添加 imageViews 的位置添加标签。

    然后在你的 imageTapped() 方法中比较它们 -

    func imageTapped(_ sender: UIImageView) {
    
    //Problem here, can't get correct sender
    if ( sender.tag == 1) {
        //do one thing
    }else if(sender.tag ==2){
        //do the other
    }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多