gpt4 book ai didi

ios - 创建我的 UITableViewCells 时,为什么从未调用过 init? (导致空白单元格?)

转载 作者:行者123 更新时间:2023-11-29 11:00:49 24 4
gpt4 key购买 nike

在我的 UITableView 中,我最近更改了单元格的结构,从以前只是将 UILabels 放在单元格的 contentView 中,改为将两个 UIViews(CellFront 和 CellBack,彼此叠加)添加到 contentView 中(这样我就可以实现通过滑动顶部的并显示底部的滑动效果)并将 UILabels 添加到顶部的 UIView。

但是,现在,无论出于何种原因,单元格都无法初始化,因此我的 UITableView 充满了空白单元格。

我的单元格创建如下(ArticleCell 是 UITableViewCell 的子类):

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = nil;

ArticleInfo *articleInfo = [self.fetchedResultsController objectAtIndexPath:indexPath];

// Checks if user simply added a body of text (not from a source or URL)
if ([articleInfo.isUserAddedText isEqualToNumber:@(YES)]) {
CellIdentifier = @"BasicArticleCell";
}
else {
CellIdentifier = @"FullArticleCell";
}

ArticleCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

if (cell == nil) {
cell = [[ArticleCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

// If the user simply added a body of text, only articlePreview and progress has to be set
cell.preview = articleInfo.preview;

// If it's from a URL or a source, set title and URL as well
if ([articleInfo.isUserAddedText isEqualToNumber:@(NO)]) {
cell.title = articleInfo.title;
cell.URL = articleInfo.url;
}

return cell;
}

但是我在上面的 if 语句中的 initWithStyle 方法上设置了一个断点,它永远不会被调用:

enter image description here

什么会导致这种情况?我每次都删除应用程序并从头开始构建它,因此数据肯定会添加到 UITableView,但所有单元格都是空白的。我可以看出正在添加一堆单元格,因为我在所有这些单元格上都有披露指示器,而表格 View 只是充满了只有指示器的空单元格。

enter image description here

我做错了什么?

最佳答案

尝试

ArticleCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

代替

ArticleCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

第一个是旧的标准方式。它不会为您创建一个单元格。而第二个单元格将从 Storyboard 中创建。因此,如果您使用 Storyboard,您确实应该使用您现在正在使用的方法,但它永远不会进入 if 分支,因为单元格永远不会为零。


当实例化表单 Storyboard时,initWithStyle:reuseIdentifier: 永远不会被调用。在 -initWithCoder:-layoutSubviews

中设置所有内容

关于ios - 创建我的 UITableViewCells 时,为什么从未调用过 init? (导致空白单元格?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16001943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com