2

この質問は一意ではないと確信していますが、それを解決する他の情報源は見つかりませんでした. 実際、それらはより多くの混乱を引き起こしています。できれば光を当ててください。

問題の核心は、カスタム セルを含む 7 セクション 30ish 行テーブルの 1 つのセルで UILabel をスライド (-50) したいということです。スクロールした後、他のいくつかの行がこのラベルを移動しており、スクロールが続くにつれてどんどん移動し続けます。

マイナス 50 x 座標がテスト用に 2 か所あることに注意してください。セル == nil の最初のものは呼び出されません。どうして??それがこの問題を解決する場所だと思いました。

また、セルが nil の場合でも、initWithStyle (カスタム用ではない) または initWithCoder (ストーリーボードで作成) を呼び出す方法がわかりません。??

    NSArray *a = [[userDetailData objectAtIndex:[indexPath section]] objectAtIndex:[indexPath row]];

    NSString *key = [[[a objectAtIndex:0] allKeys] objectAtIndex:0];
    NSString *value = [[a objectAtIndex:0] valueForKey:key];

    static NSString *CellIdentifier = @"MasterCell";

    UsersTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    // If cell does not exist, create it, otherwise customize existing cell for this row
    if (cell == nil) {
        // Create cell
        cell = [[UsersTableViewCell alloc] initWithCoder:<#(NSCoder *)#>reuseIdentifier:CellIdentifier];

        // Configure cell:
        NSLog(@"Key: %@   %d, %d", key, [indexPath section], [indexPath row]);
        // Prepare the date field to move left for checkmark or ex-mark

        if ([key isEqualToString:@"Date"]) {
            CGRect frame = cell.comboLabel.frame;
            frame.origin.x -= 50;
            cell.comboLabel.frame = frame;
            NSLog(@"In Date...  minus 50");
        }
    }

    // Customize cell:
    CGRect frame = cell.comboLabel.frame;
    if ([key isEqualToString:@"Date"]) {
        frame.origin.x -= 50;
        cell.comboLabel.frame = frame;
        NSLog(@"   %d, %d\n   cell: %@\n", [indexPath section], [indexPath row], cell);
    }
    else {
        frame.origin.x += 0;
        cell.comboLabel.frame = frame;
    }

    // Reset color
    cell.comboLabel.textColor = [UIColor blackColor];

    // Set the Item
    cell.nameLabel.text = [NSString stringWithFormat: @" %@",key];
    // Give the cell an accessory indicator
    ..... continue on with logic.
4

1 に答える 1