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

Xcode9中Swift4编写的UITableView自定义Cell不显示数据问题

排查UITableView无数据显示的问题

嘿,我来帮你解决这个UITableView不显示数据的问题!咱们一步步来排查常见的原因:

  • 确保数据源和代理已正确设置
    你需要让ViewController遵守UITableViewDataSource和UITableViewDelegate协议,并且在viewDidLoad里手动绑定,或者在Storyboard里把tableView的dataSource和delegate拖到ViewController上:

    override func viewDidLoad() {
        super.viewDidLoad()
        tableView.dataSource = self
        tableView.delegate = self
    }
    
  • 检查数据源方法的实现
    这是最容易出错的地方,你必须实现两个核心方法:

    1. 返回行数的方法,要确保返回你设置的5:
      func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
          return 5
      }
      
    2. 配置cell的方法,这里要注意:
      • 复用cell时的标识符必须和Storyboard里cell的Identifier完全一致
      • 一定要给cell里的控件(比如labelValorTotal、labelQtdItens)赋值,不然即使cell创建了,也看不到内容
        示例代码:
      func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
          let cell = tableView.dequeueReusableCell(withIdentifier: "TableViewCellVenda", for: indexPath) as! TableViewCellVenda
          // 给控件赋值,比如测试用的固定值
          cell.labelValorTotal.text = "50.00"
          cell.labelQtdItens.text = "3"
          cell.imageCloud.image = UIImage(systemName: "cloud")
          return cell
      }
      
  • 验证cell的复用标识符匹配
    打开Storyboard,选中你的TableViewCell,在Attributes Inspector里找到Identifier字段,确保它和你代码里dequeueReusableCell用的字符串完全一样,大小写都不能错!

  • 检查tableView的约束是否正确
    如果tableView的约束没设置好(比如高度为0,或者被其他视图挡住),即使有数据也看不到。你可以给tableView设置上下左右都和父视图边缘对齐的约束,确保它能正常显示在屏幕上。

  • 确认cell的IBOutlet连线无误
    你的TableViewCellVenda里有多个IBOutlet,要检查这些连线有没有断开(Storyboard里有没有红叉),如果连线失效,赋值也不会显示到界面上。

如果以上几点都检查过还是有问题,可以把ViewController里的相关代码贴出来,我再帮你进一步分析!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:35:41