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

时间:2013-01-25 14:56:12

标签: ios objective-c ios6 uitableview

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

  1. Adding unknown number of rows to 'Static Cells' UITableView
  2. https://devforums.apple.com/message/502990#502990
  3. 但后续问题中反复出现的主题始终是“TableViewCells出现,但它们是空的。”我假设人们解决了这个问题,但没有找到解决方案。

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

    我相信我已经把所有东西都搞定了。我有:

    1. 在我的UITableViewController子类中,包含并覆盖了上述两个链接中标记为“Answer”的所有必需方法。
    2. Subclassed UITableViewCell,并在子类中包含两个UILabel属性。
    3. 将Storyboard中单元格的类设置为我的子类,并给出一个适当的标识符,该标识符在Controller子类中正确使用。
    4. 在故事板中将两个UILabel放置在单元格上。
    5. 将两个标签连接到Cell子类中的属性。
    6. 我实例化并为属性赋值,就像上面的答案一样。

      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;
      

      我错过了什么?

2 个答案:

答案 0 :(得分:0)

发生在我身上的问题是,当你创建自己的单元格时(如果你找不到可重复使用的单元格),它的两个标签是零。因此,您还必须创建两个标签并将它们设置为单元格的标签,并且它有望起作用。

答案 1 :(得分:0)

首先,您需要检查是否已正确定义OwnersInfoEventsCell。检查您在Cell Class中定义的Label是否已正确定义。检查该标签的框架。

 _ 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的代码,然后我可以简要地建议你。

希望这可以帮助你。