2015-12-22 26 views
0

我在ViewController中有兩個視圖,它們在接觸時執行特定的操作。如果我用一根手指按住其中一隻手,並用另一隻手指觸摸同一視圖,則什麼也不會發生。下面的「ok」測試沒有出現。如何在視圖已被按下時響應觸摸?

我覆蓋的方法touchesBegan執行的操作:

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 

    print("ok") 
    if let touch = touches.first{ 
     let viewTag = touch.view!.tag 
     if viewTag == 101 { 
      // my action for view 1 
     } else if viewTag == 102 { 
      // my action for view 2 
     } 
    } 
    super.touchesBegan(touches, withEvent: event) 
} 

編輯

我已經使用multipleTouchEnabled = true

+2

是'multipleTouchEnabled'屬性設置爲TRUE;? – ZhangChn

+0

是的,在'viewDidLoad'我有'view.multipleTouchEnabled = true'。 – msampaio

回答

0

multipleTouchEnabled = true必須在兩個視圖中設置,不僅是主視圖。

將這個代碼在viewDidLoad

let tags = [101, 102] 
for v in view.subviews { 
    if tags.contains(v.tag) { 
     v.multipleTouchEnabled = true 
    } 
} 
1

您必須啓用對你的看法多點觸摸:

self.view.multipleTouchEnabled = true; 
1

來自文檔:

multipleTouchEnabled

一個布爾值,指示接收器是否處理 多點觸摸事件。

當設置爲YES時,接收器接收與多點觸摸序列相關聯的所有觸摸。當設置爲NO時,接收器僅通過多點觸摸序列接收第一觸摸事件。 默認值爲 此屬性爲NO

當 此屬性爲否時,同一窗口中的其他視圖仍然可以接收觸摸事件。如果您希望此視圖專門處理多點觸控事件 事件,請將此屬性和屬性的值都設置爲YES。

相關問題