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 的数据