【问题标题】:"didSelectRowAtIndexPath" method never called on iOS 10 devices在 iOS 10 设备上从未调用过“didSelectRowAtIndexPath”方法
【发布时间】:2017-01-30 18:27:48
【问题描述】:

我当前的应用在商店中已经有几个月可用了。这个应用程序包含几个UIListView,使用自定义单元格(每个单元格都有自己的NIB),并且触摸一个单元格始终可以正常工作。

现在,在没有任何应用程序更新的情况下,从 iOS 10 开始,触摸一个单元格不会做任何事情,不会触发任何事件,也不会调用 didSelectRowAtIndexPathwillSelectRowAtIndexPath

这只发生在 iOS 10 设备上,即使在更新到 SWIFT 3 之后也是如此。

知道有什么问题吗?

【问题讨论】:

  • 您是否使用 XCode View Hierarchy 调试工具 developer.apple.com/library/content/documentation/… 检查是否没有视图阻止触摸?您是否检查了 UITableView 代表不为零?
  • 您好,谢谢。委托不为空,我将尝试调试器。但我不明白这怎么可能,因为相同的代码在 iOS 8 和 9 上运行良好。
  • UIListView 是指内置的UITableView 还是自定义视图?
  • 是的对不起,UITableView(我的 Android 反应)。顺便说一句,我的视图层次结构还可以,没有任何阻塞。我有一个来自 DFP 库的 GADNativeContentAdView,但它似乎没有任何效果:如果我不使用它,它仍然不行。
  • 我现在学得很快,如果我的假设没有任何意义,我深表歉意。现在不是变成了 didSelectRowAt 和 willSelectRowAt 了吗?

标签: ios uitableview ios10 xcode8 didselectrowatindexpath


【解决方案1】:

终于找到了。这似乎是一个 DFP lib 行为“不兼容”问题。我用来包含所有单元格元素的 DFP 视图,因为有时它会显示自定义广告内容。此视图获取用户交互,这对于跟踪广告点击和获取分析是显而易见的,但在 iOS 10 中,这会阻止单元格获取任何触摸事件:一切都由 DFP 视图处理。所以解决方案就是在我显示非广告内容时将userInteractionsEnabled 强制为false

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    相关资源
    最近更新 更多