我基于UICollectionView
聊天用户界面。非常常见的UI
看起来像iMessage。
我有逻辑,使用
collectionView(_:didSelectItemAt:)
我想在此集合视图的背景中添加点击手势识别器以关闭键盘。
所以我想在我的bubbleCell
上自定义点击测试,这样我就可以点按气泡来调用
collectionView(_:didSelectItemAt:)
并点击空白区域以调用关闭键盘逻辑。
我该怎么做才能实现这种行为?
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
}
答案 0 :(得分:1)
我认为您需要在cancelTouchesInView
上将UITapGestureRecognizer
设置为false才能识别两个点击(在Collection View和Tap Gesture Recognizer上)。
let tap = UITapGestureRecognizer(target: self, action: #selector(ChatViewController.dismissKeyboard))
tap.cancelsTouchesInView = false
self.view.addGestureRecognizer(tap)