使用NIB重用自定义单元

时间:2012-08-09 18:14:42

标签: ios uitableview nib recycle

您好我是IOS开发的新手,我创建了一个UITableView,它使用在笔尖中创建的自定义单元格。以下是我的ViewController加载单元格的代码,但如果我上下滚动3次应用程序崩溃,因为我不认为我正确地重复使用单元格。我用Google搜索,但我发现的大部分代码/解决方案似乎已经过时了。我的代码低于任何帮助,非常感谢!

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"CustomCell";
    CustomCell *cell = (CustomCell *) [tableView dequeueReusableCellWithIdentifier:@"cellIdentifier"];
    if (cell == nil) {
        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
        for (id currentObject in topLevelObjects){
            if ([currentObject isKindOfClass:[UITableViewCell class]]){
                cell =  (CustomCell *) currentObject;
                break;
            }
        }
    }
    cell.TITLE.text = [NSString stringWithFormat:@"\"%@\"", [TITLE objectAtIndex:indexPath.row]];
    cell.desc.text = [desc objectAtIndex:indexPath.row];
    cell.votes.text = [votes objectAtIndex:indexPath.row];
    return cell;
}

2 个答案:

答案 0 :(得分:3)

更改行

CustomCell *cell = (CustomCell *) [tableView dequeueReusableCellWithIdentifier:@"cellIdentifier"];  

CustomCell *cell = (CustomCell *) [tableView dequeueReusableCellWithIdentifier: CellIdentifier];  

转到IB中的CustomCell .xib文件,查找identifier字段并将其设置为CustomCell

答案 1 :(得分:0)

您可以为tableView注册nib,例如:

<span id="eow-title" class="watch-title " dir="ltr" title="Latest Agar.io PvP - Create Your Own Server!"></span>