You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UITableView点击Cell不触发didSelect 长按滑动后才触发问题求助

UITableView Cell点击didSelect不触发解决方法
  • 排查Cell及其子视图上是否添加了UITapGestureRecognizer:如果有添加,手势默认会拦截触摸事件导致didSelect无法响应,可设置手势的cancelsTouchesInView = false,或实现手势代理方法gestureRecognizer:shouldReceiveTouch:,判断触摸位置属于Cell时返回NO,不拦截事件。
  • 检查属性配置是否正确:确认tableView.allowsSelection为true,对应Cell的selectionStyle不是UITableViewCellSelectionStyleNone。
  • 检查用户交互开关:确认Cell、Cell的contentView、UITableView以及所有上层父视图的userInteractionEnabled属性均为true,任何一层关闭交互都会导致点击事件无法传递。
  • 排查触摸方法重写逻辑:如果在Cell、父视图中重写了touchesBegan:withEvent:、touchesEnded:withEvent:等系统触摸方法,必须调用super的对应方法,否则会阻断系统的点击事件传递链路,导致didSelect无法触发。
  • 排查滚动类视图干扰:如果Cell内部添加了UIScrollView或其子类,可尝试将滚动视图的delaysContentTouches属性设置为false,该属性开启时会默认延迟识别点击事件,优先判断是否为滚动操作,会导致普通点击无响应。
  • 排查点击区域判断方法的重写逻辑:如果重写了hitTest:withEvent:或pointInside:withEvent:方法,检查逻辑是否有误,错误的点击区域判断会导致系统判定点击不在Cell范围内,不会触发didSelect回调。

问题参考截图

问题相关截图1
问题相关截图2
问题相关截图3
问题相关截图4

内容的提问来源于stack exchange,提问作者Adarsh KC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 18:24:03