【发布时间】:2019-08-26 21:42:09
【问题描述】:
在我安装了最新的 Mojave macOS 之后,我刚刚将我的 Xcode 升级到了 10.2 版。
Xcode 要求我将 Swift 从 3.0 迁移到更高版本,所以我选择更新到 Swift 5.0。
在对语法更改进行了一些小的更改后,该应用程序已启动并运行。然而,我发现 collectionView didSelectItemAtIndexPath 在模拟器或设备中停止工作,这意味着当您点击 collectionView 中的某个项目时,不再调用相应的 didSelectItemAtIndexPath 方法。
我多次检查我的代码更改,我很确定语法更改与受影响的 collectionView 无关。我可以制作一些 TagGesture 技巧来解决,但我想知道这里有什么问题。
我很确定集合视图允许用户交互,也允许选择。
这是怎么回事?
更新:
迁移后我的旧代码完全没有变化,看起来像这样:
func collectionView(_ collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: IndexPath) {
...
}
我根据回答者的建议更新了以下内容。但是,仍然无法正常工作。
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
...
}
(我连xib文件都没碰过,代表们都是对的。)
【问题讨论】:
-
请显示相关代码 - 即。你的
didSelectItem(at:)函数 -
这段代码完全没有变化,所有的变化都与collection view完全无关
-
可能需要更改代码,这就是我要求查看您的代码的原因。
-
@paulw11 请看一下代码。当前的事情是当点击一个项目时这个方法根本没有被调用。
-
集合视图的
allowsSelection属性的值是多少?要么通过代码设置,要么通过 xib 文件设置。
标签: ios swift swift4 collectionview swift5