UITapGestureRecognizer 关闭键盘和 UICollectionView 冲突

问题描述

我有一个 UIScrollView,其中包含多个堆栈子视图。

我有一个 UITapGestureRecognizer 可以关闭键盘,这很有效。

let tap = UITapGestureRecognizer(target: self,action: #selector(dismissKbd))
self.view.addGestureRecognizer(tap)

我的一个子视图是一个包含集合视图的堆栈视图。

stackView = UIStackView()
scrollView.addSubview(stackView)
stackView.axis = .horizontal
stackView.anchor(top: notesTextView.bottomAnchor,left: scrollView.leftAnchor,bottom: scrollView.bottomAnchor,right: scrollView.rightAnchor,paddingTop: 8,paddingLeft: 2,paddingBottom: 2,paddingRight: 2,height: 400)
let child = ImagegalleryViewController()
stackView.addArrangedSubview(child.view)
child.didMove(toParent: self)

问题:

结果:

  1. 点击屏幕时键盘关闭
  2. didSelectItemAt 仅在单元格上使用两个手指时有效

我认为这与手势识别器的冲突有关。

如果您能提供有关如何进行这项工作的任何指导,我将不胜感激。我认为这与手势识别器的重点有关?

解决方法

我认为当 scollView 滚动或 offsetY 是一个常数时,您可以处理关闭键盘。你永远不需要用手势关闭键盘。