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

Swift TableView点击Cell无打印信息问题排查求助

TableView Cell点击无响应排查思路

1. 修正代理方法名(最关键问题)

你当前实现的是tableView(_:didDeselectRowAt:),这个方法是取消选中Cell时才会触发的。要实现点击Cell时打印信息,必须把方法名改成tableView(_:didSelectRowAt:),修改后的代码如下:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    print(messages[indexPath.row].message)
}

2. 确认TableView代理已设置

在viewDidLoad中,你只设置了tableView.dataSource = self,但点击事件属于UITableViewDelegate的职责,需要补充设置代理:

override func viewDidLoad() {
    super.viewDidLoad()
    // ... 原有代码
    tableView.dataSource = self
    tableView.delegate = self // 新增这一行
    // ... 原有代码
}

3. 检查Cell的交互状态

打开你的MenuCell xib文件,确认以下两点:

  • Cell本身的User Interaction Enabled选项处于勾选状态
  • Cell内部的所有子控件(比如labelMenu)的User Interaction Enabled保持默认未勾选(除非需要子控件单独处理交互,否则会拦截点击事件传递到TableView)

4. 验证TableView的可交互性

  • 检查tableView.isUserInteractionEnabled是否为true(默认是true,若被误设为false会完全禁用交互)
  • 确认TableView的frame没有被其他视图遮挡,确保点击区域在TableView的可视范围内

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 23:16:12