2016-11-04 1 views
0

Я знаю, как добавить tappability к UIImageView, однако есть 2 изображения, и я хочу отличить их от вызова правильной функции. Тем не менее, я не могу получить правильное значение sender.Признать, что View вызывает функцию Tap.

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 
    } 
} 
+0

вы можете добавить тег, чтобы отличить их – Misha

+0

@Misha вы можете добавить код в ответ, пожалуйста, ТКС –

+0

@BhavinRamani спасибо –

ответ

1

Заменить функцию с этим:

func imageTapped(_ sender: UITapGestureRecognizer) { 

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

    } 
} 
0

Вам нужно добавить тег, где вы добавляете 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 
} 

} 
Смежные вопросы