将动态单元格添加到静态 UITableView:动态单元格为空



我已经完成了研究,并遵循了此过程的众多指南,包括:

  1. 将未知数量的行添加到"静态单元格"UITableView
  2. https://devforums.apple.com/message/502990#502990

但是后续问题中反复出现的主题始终是"TableViewCells出现了,但它们是空的。我假设人们解决了问题,但没有发布解决方案。

因此,我所处的阶段包括:静态单元格显示并正确填充数据,动态单元格正确显示数量,但不显示其元素(它们是空的)。

我相信我已经正确连接了一切。我有:

  1. 在我的UITableViewController子类中,包含并覆盖了上面两个链接中标记为"答案"的所有必需方法。
  2. 子类化 UITableViewCell,并在子类中包含两个 UILabel 属性。
  3. 将情节提要中单元格的类设置为我的子类,并给定适当的标识符,该标识符在控制器子类中正确使用。
  4. 在情节提要中的单元格上放置两个 UILabel。
  5. 将两个标签挂接到 Cell 子类中的属性。

我实例化并为属性赋值,就像上面的答案一样。

static NSString *CellIdentifier = @"DynamicCell";
    OwnersInfoEventsCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (!cell) {
        cell = [[OwnersInfoEventsCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    cell.eventName.text = @"Name"; //this doesn't show up
    cell.eventNeed.text = @"Need"; //this doesn't show up
    cell.backgroundColor = [UIColor redColor]; //this works, the cell shows up red
    return cell;

我错过了什么?

这发生在我身上,问题是当您创建自己的单元格时(以防您找不到可重用的单元格),它的两个标签为零。因此,您还必须创建两个标签并将它们设置为单元格的标签,希望它可以工作。

首先,您需要检查是否正确定义了OwnersInfoEventsCell。检查您在单元格类中定义的标签是否已正确定义。检查该标签的帧。

 _ eventName = [[UILabel alloc]initWithFrame:CGRectMake(25, 2, 40 , 40)];
 _ eventName.backgroundColor = [UIColor clearColor];
 [_ eventName setBaselineAdjustment:UIBaselineAdjustmentAlignCenters];
 eventName.font = [UIFont fontWithName:@"King" size:12];
 [self.contentView addSubview:_ eventName ];

检查是否已在单元格的内容视图中添加标签。这可能是问题。让我展示您的OwnersInfoEventsCell代码,然后我可以更简要地建议您。

希望这对您有所帮助。

最新更新