即使我有一个解决方案,我也会把这个问题作为一个问题,因为我很好奇是否有人知道发生了什么事情的内部情况。
该场景是我刚刚开始的一个客户端项目,它有一个非常古老的代码库。在iOS7上运行时,手势识别器已被添加到表格视图单元格(以获取点击),其中没有触发。 iOS5& 6没问题。只是iOS7。
经过大量的代码挖掘和实验后,我注意到xib中的根控件包含UIView而不是UITableViewCells的单元格。分配给根视图的类是UITableViewCells的扩展,因此当xib被扩展为对象时,会创建正确的类。
但是当在iOS7上运行时,有些事情并不想解雇识别器。在我的实验中,我将其中一个xib转换为UITableViewCell作为根控件而不是UIView,一切都开始工作。
我的假设是,在编译xib时,XCode会根据xib中的根控件执行不同的操作,即使它已分配了自定义UITableViewCell类。
所以我有一个解决方案来解决我的问题(很棒),但是我有兴趣知道是否有人更详细地解释为什么在xib中使用UIView作为根控件,即使它编译和(大多数)工作,不是犹太人。
哦,是的我要修复xib以获得正确的根控制。 :)