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)であるため、メソッドは決して nil を返さないため、必要はありません。dequeueReusableCellWithIdentifier: forIndexPath:

于 2013-10-06T15:24:12.317 に答える