我在可以正常工作的项目中实现了CellForRowAtIndexPath方法。

看起来像这样:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {


    static NSString *cellIdentifier = @"StackTableViewCell";

    Target *target = [self.fetchedResultController objectAtIndexPath:indexPath];

    StackTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (!cell)
    {
        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"StackTableViewCell" owner:self options:nil];
        cell = [topLevelObjects objectAtIndex:0];
    }

    cell.cellLabel.text = target.body;

    cell.cellLabel.font = [UIFont fontWithName:@"Candara-Bold" size:20];[UIFont fontWithName:@"Candara-Bold" size:20];

    // Configure the cell...

    return cell;
}

但是有些事情困扰着我,因为我不太了解这部分发生了什么(我从一些教程中获得了它):
if (!cell)
        {
            NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"StackTableViewCell" owner:self options:nil];
            cell = [topLevelObjects objectAtIndex:0];
        }

有人可以帮我理解吗?

谢谢!

最佳答案

如果表视图没有可重复使用的单元格,请加载StackTableViewCell.xib中存在的对象。假设可以将在顶层找到的第一个实例化为所需的单元格类型。

关于ios - Nib 项目中的CellForRowAtIndexPath,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27534768/

10-11 07:30