UITableView 中根本没有显示任何数据

Posted

技术标签:

【中文标题】UITableView 中根本没有显示任何数据【英文标题】:No data at all is showing in UITableView 【发布时间】:2016-10-29 18:00:25 【问题描述】:

我创建了许多Xcode 项目,看看这是否是单个项目问题,但不是。我遇到的问题是,当我使用本地数据或存储在 Parse 数据库中的数据填充 UITableVIiew 时,它不会显示。

我尝试重新安装 Xcode,清理我的项目并浏览代码/项目以查看我是否犯了错误,但一切看起来都到位。

一个例子是我在单元格中创建了一个UITableViewController 和一个UIImage,当我构建和运行项目时它没有显示出来。

这是一个例子:

提前致谢。

【问题讨论】:

你用 Swift 标记了这个问题。请使用您的相关 Swift 代码更新您的问题。 @rmaddy。我的错误是没有代码。以上所有内容都是基于故事板的 我认为这可能是 Xcode 的一个错误,但令我惊讶的是,当我删除 Xcode 并重新安装它时它没有得到修复。有没有其他人遇到过这个问题? 你添加了约束吗?在调试视图层次结构中,是否正在创建 UIImageView @Rikh 感谢您的评论。可悲的是,不,它没有被创建:( 【参考方案1】:

你应该实现UITableViewDataSource这两个必需的方法。

类似的东西:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
    return 5;


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
    return cell;

【讨论】:

感谢您的回答,但我已经使用上述方法为我的表格视图创建了一个 Swift coca 类 您在上面的 cmets 中说没有代码。现在你说有。如果有代码,请编辑您的问题并发布。 @Frankie 只有在我创建 Swift 文件时由 Xcode 创建的代码。在我解决这个问题之前,我个人还没有机会编写任何代码【参考方案2】:

如果您只是发布可用代码,这会更快...Annnnyway...

我问的原因是因为如果您只在情节提要中完成此操作,并且它是一个动态表,则该表将查看您的 numberOfRowsInSection 方法以查看它是否应该填充该表。如果这是 0,那么无论您在情节提要中放入什么内容,都不会得到任何行。

此外,如果您的 cellForRowAtIndexPath 中的单元格标识符为 cell,但您尚未将情节提要单元格标识为 cell,那么您仍然会得到空白单元格。

此外,如果您正确实现了这两种方法,则需要确保该表作为数据源连接到该类,无论是通过情节提要还是以编程方式。

但这些都只是猜测,因为我需要查看代码才能弄清楚。

【讨论】:

非常感谢您的回答和帮助。我在我的问题中添加了cellForRowAtIndexPath,但是如果您想查看完整的代码,这里是我的项目的链接 - dropbox.com/s/etcp5hz6uxkeqo3/Iconic.zip?dl=0 @TimSmith:我检查了你的项目,它运行良好。它正在将图像加载到单元格中,但需要几秒钟才能加载(这取决于网络速度)。默认图像未加载,因为您要求 parse 在调用 cellForRow 方法后立即加载其实际内容(如果您注释掉 cell1.cellImageNailView?.file = imageFile cell1.cellImageNailView.loadInBackground() 您可以立即看到您的图像) @MidhunMP 我昨晚更新到 Xcode 8.1 并在 iPhone 7 模拟器上测试了我的项目,但它没有工作,所以我在我的 iPhone 6s 上试了一下,它工作了!我不必更改任何代码。我认为这可能是某种错误?感谢您的帮助?非常感谢【参考方案3】:

如果您使用的是UITableViewController,您是否将单元格更改为静态?

【讨论】:

【参考方案4】:

您说除了 Xcode 提供的之外,您没有任何自定义代码。那是你的问题。

您需要实现 UITableViewDataSource 方法才能将数据安装到表格视图中。 Xcode 不这样做。 Xcode 放入视图控制器的代码告诉表视图没有数据。您需要报告至少有 1 个部分,并且该部分中至少有 1 行。然后,您需要为 cellForRowAtIndexPath 编写代码,将模型中的数据安装到单元格中。

Nikita 列出了在表格视图执行任何操作之前必须实现的 3 种方法中的 2 种。

【讨论】:

以上是关于UITableView 中根本没有显示任何数据的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 不显示来自 responseObject 的数据

UITableView 不显示解析的数据

iPhone 5 UITableView 不显示

将大数据从本地数据库加载到 UITableview 而无需 ui 冻结

如何在 UITableView 中显示零行的表格

Objective-c——UI基础开发第六天(UITableView)