一尘不染

在iOS 9中未调用UITableViewCell内部的IBAction

swift

我有一个自定义UITableViewCell子类,其中包含一些IBAction从笔尖连接的方法。

在iOS
8下,一切正常。如果用户点击其中一个按钮,IBAction则会调用相应的按钮。如果用户点击该单元格上的其他任何位置,则将UITableView didSelectRowAtIndexPath调用。

在iOS 9下,永远不会调用我的IBAction方法。在UITableView
didSelectRowAtIndexPath始终不管其中用户在小区(按钮或不)抽头的烧成。

该项目在Xcode 6 / Swift 1.2下编译。

我在没有解决方案的Apple论坛上找到了这篇文章。他们似乎有同样的问题。

https://forums.developer.apple.com/thread/16179


阅读 207

收藏
2020-07-07

共1个答案

一尘不染

我想出了解决方案,希望这个答案可以节省其他人的时间。

我继承了此代码库,但出现了一些问题。在UITableViewCell's那些没有在iOS的9个工作没有使用UITableViewCell笔尖W /
A
ContentView。相反,有人创建了一个UIView笔尖,然后将其指向自定义UITableViewCell子类。笔尖没有ContentView,显然iOS
9对此有些挑剔。此实现在iOS 8下运行良好,没有编译器或运行时错误或警告。

解决方案是创建一个新的UITableViewCell子类,然后让Xcode自动为其创建笔尖。然后,我从旧笔尖复制了所有UI和代码,并将其粘贴到ContentView新笔尖的。然后,我不得不修正约束,并将连接重新连接到自定义子类。

2020-07-07