0

我喜欢将多个可重用的 UITableViewCells 添加到 TableView。我正在使用此代码执行此操作,但它不起作用,它只显示第一个单元格。

这是我的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row == 0) {

        static NSString *costumeCell1 = @"Cell1";

        AppDetailCell1 *cell1 = [tableView dequeueReusableCellWithIdentifier:costumeCell1];

        if (!cell1) {
            cell1 = [[AppDetailCell1 alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:costumeCell1];
        }

        return cell1;
    }
    if (indexPath.row == 1) {

        static NSString *costumeCell2 = @"Cell2";

        AppDetailCell2 *cell2 = [tableView dequeueReusableCellWithIdentifier:costumeCell2];

        if (!cell2) {
            cell2 = [[AppDetailCell2 alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:costumeCell2];
        }

        return cell2;
    } else {

        return nil;

    }
}
4

1 回答 1

0

如果您正确设置重用标识符,则应更改此代码部分

AppDetailCell1 *cell1 = [tableView dequeueReusableCellWithIdentifier:costumeCell1];

    if (!cell1) {
        cell1 = [[AppDetailCell1 alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:costumeCell1];
    }

有了这个

AppDetailCell1 *cell1 = [tableView dequeueReusableCellWithIdentifier:costumeCell1 forIndexPath:indexPath];

没有必要if(!cell1),因为dequeueReusableCellWithIdentifier: forIndexPath:方法永远不会返回 nil,正如我之前所说,正确重用标识符集很重要。

于 2013-10-06T15:24:12.317 回答