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

自定义UITableViewCell显示异常:仅呈现空白可选中单元格

问题分析与解决方案

嘿,我立刻发现了导致你的自定义单元格控件不显示的核心问题!

问题根源

你在ControlSettingsView的viewDidLoad里调用了这行代码:

tableView.register(InputCell.self, forCellReuseIdentifier: INPUT_CELL)

这会覆盖你在Storyboard中配置的单元格注册。因为你是通过Storyboard设计的自定义单元格(包含label和textfield,并且关联了InputCell类),系统会自动帮你完成单元格的注册工作。而手动调用register(_:forCellReuseIdentifier:)会让系统创建一个纯代码实例化的InputCell——这个实例没有加载Storyboard里的布局,所有@IBOutlet都是nil,自然看不到任何控件。

修复步骤

  • 第一步:删除viewDidLoad中的tableView.register(InputCell.self, forCellReuseIdentifier: INPUT_CELL)这行代码。
  • 第二步:(可选但建议)在cellForRowAt方法中添加控件内容的赋值逻辑,比如:
    let cell: InputCell = tableView.dequeueReusableCell(withIdentifier: INPUT_CELL, for: indexPath) as! InputCell
    cell.cell_title.text = "第\(indexPath.row + 1)项设置"
    cell.cell_input.placeholder = "请输入内容"
    return cell
    
    这样修复后,不仅控件会显示,还能看到对应的内容。
  • 第三步:再次确认Storyboard中的配置:
    • 单元格的重用标识符确实是input_cell(和代码中的常量一致)
    • 单元格的自定义类设置为InputCell
    • ControlSettingsView确实关联了Storyboard中的UITableViewController

额外排查点

如果按上面的步骤修复后还是有问题,可以尝试:

  • 清理Xcode缓存(Command+Shift+K),然后重新编译运行
  • 检查InputCell中的@IBOutlet是否正确关联(可以在Storyboard中右键点击控件,查看连线是否指向InputCell的对应属性)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:18:11