Ios didSelectItemAt未被调用
我的收藏视图已准备就绪,我正在尝试执行Ios didSelectItemAt未被调用,ios,swift,uicollectionview,Ios,Swift,Uicollectionview,我的收藏视图已准备就绪,我正在尝试执行didSelectItemAt以转到详细视图。但我只想测试每个项目的日志记录,而不是日志记录 我已经设置了所有代理: * * 我做错了什么 func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { let movie : Movie movie = MOVIE_ARRAY[indexPath.row]
didSelectItemAt
以转到详细视图。但我只想测试每个项目的日志记录,而不是日志记录
我已经设置了所有代理:
*
*
我做错了什么
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let movie : Movie
movie = MOVIE_ARRAY[indexPath.row]
print(movie.plot)
}
您已经在视图中添加了一个
标签识别器。TapGestureRecognitor有一个属性cancelsTouchesInView
-var cancelsTouchesInView:Bool{get set}
一个布尔值,影响识别手势时是否将触摸传递到视图
默认情况下,这是true
,将阻止调用didSelectItemAt,因为在识别点击后触摸将不会传递到视图。
您需要将其设置为false
,如下所示:
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard")
tap.cancelsTouchesInView = false
view.addGestureRecognizer(tap)
是否设置了集合视图的委托?检查是否未使用DidDescelectItemat indexPath而不是使用didSelectItemAtdidSelectItemAt:)Google搜索了一个小时,这是最常见的错误。是的,视图的代理都设置好了。这是我的github-你用那些意想不到的手势识别器让我度过了美好的一天!我在另一个文件的函数中添加了点击手势,并在视图控制器上像hideKeyboardWhenTappedAround()一样调用它。。。。根据您的建议编辑该功能非常有效…我想在单击项目时禁用TapGestureRecognitor工作(当didSelectItemAt激发时)。。我尝试了你的解决方案,但它只允许didSelectItemAt执行,但在此之后,它执行了它的方法查看此答案,然后说“不,不适用”。。。当然,猜猜看。。。可应用的
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard")
tap.cancelsTouchesInView = false
view.addGestureRecognizer(tap)