为啥 UITableViewCells cellForRowAt 方法不调用?

Posted

技术标签:

【中文标题】为啥 UITableViewCells cellForRowAt 方法不调用?【英文标题】:Why UITableViewCell's cellForRowAt method not calling?为什么 UITableViewCells cellForRowAt 方法不调用? 【发布时间】:2019-02-12 10:55:03 【问题描述】:

我已经在 storyboard 中设置了 tableView 的委托和数据源,并且我用 tableView 的某些数据填充了数组。

当我重新加载 tableView 时,它会调用 numberOfRowsAt 方法,但它不能用于 cellForRowAt。

当我通过从其他页面滑动来刷新整个页面时,它工作正常。但在某些情况下它不起作用。

除了数组计数和委托数据源连接之外,是否还有其他缺失代码可以解决此问题?

【问题讨论】:

你能在这里显示一些代码吗? 看起来 numberOfRowsForSection 返回 0 计数。 没有。此方法从数组返回完美计数。我在 reloadData 方法之前调试了这个,在这个方法中也通过打印数组计数。 我认为你必须在值数组填满数据后重新加载表。请发送一些代码以便我们给你建议。 不调用 cellForRowAtIndex 的另一个原因是 UITableView 的可见性。确保您的 tableView 可见(不隐藏)并检查 tableView 的高度(不应为 0) 【参考方案1】:

为了确保您的代理正确设置为包含 viewController,我建议以编程方式实现 tableView 代理和数据源:

tableView.delegate = self;
tableView.datasource = self;

另外,cellForRowAtIndexPathnumOfRowsAtIndexPath 返回 0 时不会被调用。

【讨论】:

是的。你是对的。但是,当您解释甚至检查此问题的小错误和愚蠢错误时,我已经注意到了。但是,我无法找到并解决这个问题。 您能否从您的代码中分享一些用于 tableView 委托和数据源方法的代码 sn-p。另外,让我知道您如何修改用于填充 tableview 的数组。

以上是关于为啥 UITableViewCells cellForRowAt 方法不调用?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 UITableViewCells cellForRowAt 方法不调用?

为啥我的 UITableViewCells 在我点击它们时会变成灰色?

为啥我的自定义 UITableViewCell 没有显示?

UITableViewCells 中的 UITextFields - 当单元格消失时,文本会消失

resignFirstResponder 到不再出现在屏幕上的 UITableViewCells 上的 UITextViews

无法滚动包含 UITextFields 的 UITableViewCells