Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios didSelectItemAt未被调用_Ios_Swift_Uicollectionview - Fatal编程技术网

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)