一旦我使用addGestureRecognizer关闭scrollView中的键盘,collectionView的didSelectItemAt将无法工作。有什么建议么?collectionView的didSelectItemAt与UITapGestureRecognizer一起使用时不会调用
更新代码:目前,我可以点击以关闭键盘,然后点击以采集单元格。但是,如果我滑动scrollView,键盘将消失。任何方式来防止呢?
class PostVC: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate {
@IBOutlet weak var colorCollectionView: UICollectionView!
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var titleTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
let tapViewGesture = UITapGestureRecognizer(target: self, action: #selector(PostVC.didTapViewForDismissKeyboard))
scrollView.addGestureRecognizer(tapViewGesture)
tapViewGesture.delegate = self
}
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool{
view.endEditing(true)
return false
}
func didTapViewForDismissKeyboard(_ pressed: UIGestureRecognizer) {
view.endEditing(true)
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
print("HIHI")
}
extension PostVC: UIGestureRecognizerDelegate {
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}
}
嗨。结合你的答案和@duncan答案。我非常接近。请参阅我的更新 –
这是否发生,即使你不使用邓肯的答案,并且没有shouldReceive实现? –
如果我不使用邓肯的答案,collectionView仍然不起作用 –