2016-05-16 70 views
0

我看了以前的回答這個問題之前,但解決方案似乎並不在我的情況下工作(如添加的要求進行手勢識別失敗) 。點擊手勢火災符合雙擊要求

我有我的看法迷上了敲擊手勢識別,以及我試圖使用以下處理程序在我的代碼:

@IBAction func doubleTapView(gesture: UITapGestureRecognizer) { 
    gesture.numberOfTapsRequired = 2 

    if gesture.state == .Ended { 
     print("Works") 
    } 
} 

這是發生了什麼:

第一抽頭將打印「作品」。 從那時起,它需要雙擊打印「作品」

如何在第一次輕敲之前將其消除,然後默認爲正確的和預期的行爲?

回答

1

您需要@IBAction函數調用之前設置的觸摸個數。

有兩種方法在這裏:

無論是在故事板

Set it here

或者創建一個IBOutlet,並將其設置在viewDidLoad()功能。

@IBOutlet weak var tapGesture: UITapGestureRecognizer! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    tapGesture.numberOfTapsRequired = 2 
} 
+0

你能解釋爲什麼會出現這種情況嗎? – illuminatedtype

+0

的「numberOfTapsRequired」點擊手勢識別器的屬性是它安裝的一部分,因此,你必須首先做到這一點,所以IBAction爲將雙擊之後被解僱(而不是後一個水龍頭 - 它的默認值) –

+1

什麼@LA說過 :) –