2017-01-24 82 views
0

我有三個UITapGestureRecognizers
他們看起來像:檢查在Swift中使用UITapGestureRecognizer按下哪個圖像視圖

gestureImageViewUp = UITapGestureRecognizer(target: self, action: #selector(ViewController.checkChoice(_:))) 
self.imageViewUp.addGestureRecognizer(gestureImageViewUp) 

gestureImageViewDown = UITapGestureRecognizer(target: self, action: #selector(ViewController.checkChoice(_:))) 
self.imageViewDown.addGestureRecognizer(gestureImageViewDown) 

gestureImageViewMiddle = UITapGestureRecognizer(target: self, action: #selector(ViewController.checkChoice(_:))) 
self.imageViewMiddle.addGestureRecognizer(gestureImageViewMiddle) 

我要檢查它們中被按下。我該如何解決這個問題?

+0

你可以有3種不同的函數調用上的選擇,或者您也可以checkChoice方法傳遞參數,以確定哪一個是它會更容易按下。 –

+0

你能提供一些工作代碼嗎? –

+0

只要嘗試調用3種不同的方法,如果你不想如何通過你的函數發送參數,將是最快的測試。 –

回答

1

您應該不需要多於一個識別器,只需將其附加到視圖並在選擇器中檢查哪個imageview被點擊。

func onPress(_ guesture: UIGestureRecognizer) { 

    guard let location = guesture.location(in: self.view) else { return } 

    if gestureImageViewUp.frame.contains(location) { 
     // … 
    } 
    if gestureImageViewDown.frame.contains(location) { 
     // … 
    } 
    if gestureImageViewMiddle.frame.contains(location) { 
     // … 
    } 
} 

沒有測試對不起,如果你的快照粘貼代碼,而不是

+0

已粘貼代碼 –

相關問題