【发布时间】:2015-04-30 08:50:26
【问题描述】:
所以我在UIViewController 中添加了UIUITableView。我不能使用UITableViewController,原因我不需要解释,因为这将是不必要的信息。无论如何,我已经将delegate 和数据源设置为这个viewController。我还添加了委托和数据源协议。单元格已正确填充,因此数据源工作正常。我也可以滚动,所以一切正常。
但是,我无法触发 didSelectRowAtIndexPath。它应该触发,但不会。我已经读过,很多与此相关的问题都可以与UIGestureRecognizer 相关联,但我还没有实现。我也使用标准的 UITableView,所以不是定制的。
如果我长按单元格(3-4 秒),它会按预期触发。这表明另一个视图或吸收点击手势的东西存在问题,我无法控制。我将如何解决这个问题?
- 不,没有DeselectRowAtIndexPath。
- 是的,所有委托和数据源都是正确的,因为我可以让委托/源触发。
- 是的,在检查器中的 TableView 上设置了单选。
- 是的,一切都启用了用户交互。
如果我只是将代码复制到UITableViewController,它会工作得很好,但恐怕现在这不是一个选择。有人对如何解决这个问题有任何想法吗?大多数遇到此问题的人要么遇到了上面列表中的问题,要么在UITableView 上添加了UIGesture - 我没有。
【问题讨论】:
-
你使用自定义
UITableViewCell吗?这可能是一个问题。您是否尝试使用“Xcode 6 的 3D 视图”来查看您的 UITableView 是否“上方”有东西在捕捉事件? -
您是如何添加 tableview 的 - 以编程方式或通过界面生成器?表视图是作为子视图添加到 self.view 还是添加到其他对象(如滚动视图)?
-
另外,是否有正在运行的进程可能会降低应用程序的速度?
-
好吧..我知道有人要求您检查一些琐碎的事情,例如您的视图是否启用了用户交互可能很烦人...您已经提到 everything 是用户启用交互...只是想确保它是否包括单元格的内容视图..如果不是,那么您是否检查过单元格的任何子视图是否没有窃取触摸..
-
您在 tableviewClass 中执行 UIGestureRecognizer 代码。如果是,则删除并检查。
标签: ios objective-c xcode uitableview delegates