由于手势识别器,CollectionView单元需要两次轻按

时间:2018-10-05 20:23:15

标签: ios swift

我添加了GestureRecognizer用于隐藏键盘,当用户单击到没有textview的视图中的任何位置时。它的工作正常,但是CollectionView Cells需要两次轻按才能工作,当我删除GestureRecognizer时,它的工作正常,但我需要两者。我已经在几个小时内进行了搜索,并尝试了很多解决方案,但是一切都没有用。

GestureRecognizer,用于在用户单击到没有文本视图的视图中的任何位置时隐藏键盘;

let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTap))
    tapRecognizer.cancelsTouchesInView = false
    view.addGestureRecognizer(tapRecognizer)

@objc func handleTap() {

  textBody.endEditing(true)
}

2 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

public override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    view.endEditing(true) // or textBody.endEditing(true)
}

答案 1 :(得分:0)

要同时识别两个手势,请通过删除cancelsTouchesInView行使用以下代码。您可能需要根据需要为collectionView添加另一个轻击手势。或使用scrollViewDidScroll的{​​{1}}事件隐藏键盘。

collectionView
相关问题