2017-04-13 10 views
1

私はUICollectionViewに基づいてチャットUIを持っています。非常に一般的なUIはiMessageのようです。 私はチャットメッセージにタップを処理するロジックを持っているが、私はキーボードを閉じ、このコレクションビューの背景にタップジェスチャー認識を追加したいUICollectionViewCellのカスタムヒットテスト

collectionView(_:didSelectItemAt:) 

を使用して泡。

だから、私はbubbleCell上でヒットテストをカスタマイズしたいので、私は

collectionView(_:didSelectItemAt:) 

を呼び出すようにして近くのキーボード・ロジックを呼び出すために、空のスペースをタップするバブルをタップすることができるようになります。

この動作を達成するにはどうすればよいですか?

Upd。いくつかは、コード

私はこのコードは

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

いくつかのコードを表示しようとしていますか? – Jack

答えて

1

と呼ばれていないされているんChatViewController.viewに

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

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

をタップジェスチャーを追加する場合、私はあなたにfalseにcancelTouchesInViewを設定する必要があると思いますUITapGestureRecognizerの両方のタップを認識するために使用します(コレクションビューとタップジェスチャー認識ツール)。

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

それは私のために働く、ありがとう!しかし、私はまたオーバーライドする必要がありました - (BOOL)pointInside:(CGPoint)point withEvent:(nullable UIEvent *)event;ユーザーがセル内のバブルや空き領域をタップしているかどうかをチェックするメソッド –

関連する問題