2017-04-13 37 views
1

我有基於UICollectionView的聊天界面。非常常見的UI,看起來像iMessage。 我有一個處理的聊天消息水龍頭邏輯使用氣泡UICollectionViewCell上的自定義命中測試

collectionView(_:didSelectItemAt:) 

我想輕敲手勢識別添加到此集合以關閉鍵盤背景。

所以我想定製我的bubbleCell命中測試,所以我將能夠挖掘泡上調用

collectionView(_:didSelectItemAt:) 

,並在空白處點擊調用close鍵盤邏輯。

我該怎麼做才能做到這一點?

Upd。某些代碼

如果我加點觸手勢到ChatViewController.view

func viewDidLoad() { 
    // ... 
    let tap = UITapGestureRecognizer(target: self, action: #selector(ChatViewController.dismissKeyboard)) 
    self.view.addGestureRecognizer(tap) 
} 

func dismissKeyboard() { 
    self.view.endEditing(true) 
} 

這個代碼將永遠不會被調用

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { 
    // Handle tap on cell 
} 
+3

顯示一些代碼你正在嘗試什麼? – Jack

回答

1

我想你會需要設置cancelTouchesInView爲false您UITapGestureRecognizer以識別兩個水龍頭(在Collection View和您的Tap Gesture識別器上)。

let tap = UITapGestureRecognizer(target: self, action: #selector(ChatViewController.dismissKeyboard)) 
tap.cancelsTouchesInView = false 
self.view.addGestureRecognizer(tap) 
+1

它適用於我,謝謝!但我也必須重寫 - (BOOL)pointInside:(CGPoint)指向withEvent:(可爲空的UIEvent *)事件;方法來檢查用戶是否敲擊單元格中的氣泡或空閒空間 –

相關問題