名称未显示在 UITableView 中

Name is not displayed in UITableView

我想在 https://github.com/singhson/Expandable-Collapsable-TableView 上做一个使用故事板的例子。我正在尝试使用 xib 文件来做到这一点。我应该在 cellForRowAtIndexPath 中进行哪些更改才能获得所需的输出?我试过这样的东西

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleTableIdentifier=@"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
    if(cell==nil)
    {
        cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
    }
    NSString *Title= [[self.itemsInTable objectAtIndex:indexPath.row] valueForKey:@"Name"];

    [self createCellWithTitle:Title image:[[self.itemsInTable objectAtIndex:indexPath.row] valueForKey:@"Image name" ] indexPath:indexPath];
//    return [self createCellWithTitle:Title image:[[self.itemsInTable objectAtIndex:indexPath.row] valueForKey:@"Image name"] indexPath:indexPath];

    return cell;

}

- (UITableViewCell*)createCellWithTitle:(NSString *)title image:(UIImage *)image  indexPath:(NSIndexPath*)indexPath
{
    NSString *CellIdentifier = @"Cell";
    ExpandableTableViewCell* cell = [self.menuTableView dequeueReusableCellWithIdentifier:CellIdentifier];
    UIView *bgView = [[UIView alloc] init];
    bgView.backgroundColor = [UIColor grayColor];
    cell.selectedBackgroundView = bgView;
    cell.lblTitle.text = title;
    cell.lblTitle.textColor = [UIColor blackColor];

    [cell setIndentationLevel:[[[self.itemsInTable objectAtIndex:indexPath.row] valueForKey:@"level"] intValue]];
    cell.indentationWidth = 25;

    float indentPoints = cell.indentationLevel * cell.indentationWidth;

    cell.contentView.frame = CGRectMake(indentPoints,cell.contentView.frame.origin.y,cell.contentView.frame.size.width - indentPoints,cell.contentView.frame.size.height);

    NSDictionary *d1=[self.itemsInTable objectAtIndex:indexPath.row] ;

    if([d1 valueForKey:@"SubItems"])
    {
        cell.btnExpand.alpha = 1.0;
        [cell.btnExpand addTarget:self action:@selector(showSubItems:) forControlEvents:UIControlEventTouchUpInside];
    }
    else
    {
        cell.btnExpand.alpha = 0.0;
    }
    return cell;
}

现在我得到了可以展开或折叠的 table,但我没有在 table 视图中显示名称。我还应该做哪些其他更改才能使其正常工作?请帮忙

我的建议:

  • 使用 dequeueReusableCellWithIdentifier:forIndexPath:(如果您没有注册 class,请注意)而不是 dequeueReusableCellWithIdentifier:,因为如果您没有注册,最后一个不会崩溃标识符的 class 或 nib,仅 returns nil.
  • 确保您将 ExpandableTableViewCell class 的“lblTitle”正确链接到界面生成器中的 xib。
  • 签入此说明:cell.lblTitle.text = 标题;如果标题为 nil 或者即使您的 lblTitle 为 nil。
  • 检查 lblTitle 是否越界(您正在更改此行中的 contentView:cell.contentView.frame = CGRectMake(indentPoints,cell.contentView.frame.origin.y,cell.contentView.frame.size。宽度 - 缩进点,cell.contentView.frame.size.height);)
  • 您是否在 viewDidLoad 中使用“registerClass:forCellReuseIdentifier:”注册了 ExpandableTableViewCell? 希望对你有帮助。