0

目前我有以下方法,但它不太管用......

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

    static NSString *MyIdentifier = @"cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
    if (cell == nil) {
        [[NSBundle mainBundle] loadNibNamed:@"TVCell" owner:self options:nil];
        cell = tvCell;
        self.tvCell = nil;
    }

    UILabel *label;
    label = (UILabel *)[cell viewWithTag:5];
    label.text = [NSString stringWithFormat:@"Hole #%d", indexPath.row];

    return cell;
}

表格视图创建时没有错误,但每个单独的单元格都不包含任何内容,但显然 TVCell.xib 有一个标签为 5 的标签。我唯一的问题是这个。我不太明白苹果在这里给出的这些步骤......

  1. 在 nib 文档窗口中选择 File's Owner,打开检查器的 Identity 窗格,并将 File's Owner 的类设置为您的自定义视图控制器类。

  2. 将 File's Owner 的单元出口(现在是您的自定义子类的占位符实例)连接到 nib 文件文档中的 table-view 单元对象。

这是这些步骤的所在...... http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/TableView_iPhone/TableViewCells/TableViewCells.html#//apple_ref/doc/uid/TP40007451-CH7

有人可以为像我这样的菜鸟解释这些步骤吗?我认为那是我搞砸的,但我本可以做错任何事。

4

3 回答 3

1

我不认为 TcCell 成为自我的财产。当单元队列为空时,请尝试此操作:

if (cell == nil) {
    cell=[[NSBundle mainBundle] loadNibNamed:@"TVCell" owner:self options:nil];
}
于 2012-04-06T00:15:47.273 回答
0

你说你不明白的步骤很难用语言解释。我建议寻找有图像或视频的教程。(我做了一个快速搜索,有很多可用的,但我真的不想在没有更仔细阅读它们的情况下选择一个来指导你)。

但是,我更喜欢以这种方式创建自定义表格视图单元格: http ://www.mobilesce.com/2011/12/27/the-best-way-to-do-custom-reusable-uitableviewcells/

它与苹果文档中描述的方式略有不同,但我看到很多人使用它,我发现它更容易。

于 2012-04-06T00:19:23.713 回答
0

NSBundle 方法loadNibNamed:owner:options:返回一个包含 nib 文件中顶级对象的 NSArray。试试这个:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil) {
    NSArray *nibArray = [[NSBundle mainBundle] loadNibNamed:@"TVCell" owner:self options:nil];
    cell = [nibArray objectAtIndex:0];
}
于 2012-04-06T00:23:28.283 回答