UITableViewCell with UILabel subview caching issue
===

First of all, please don't tell me this is a duplicate.  I know this question has been asked and answered many times but I still can't seem to get my code to work even after reading everyone else's solutions.

I'm having an issue with my UITableViewCell that contains a UILabel subview.  The UILabel sometimes doesn't appear in certain cells until I scroll away from those cells and return to them.  Here is the code I am using to customize the cells:

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

    static NSString *CellIdentifier = @"Cell";
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    
    UILabel *label;
    
    if (cell == nil) {
        
        // cell is nil, create it
        
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                      reuseIdentifier:CellIdentifier];
    
            
        label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 50, 33)];
        label.tag = 888;
                
    } else {
        
        label = (UILabel*)[cell.contentView viewWithTag:888];
        [label removeFromSuperview];
        
    }
    
    label.text = @"Label Text";
    label.backgroundColor = [UIColor clearColor];
    [label sizeToFit];
    label.center = CGPointMake(cell.contentView.frame.size.width-label.frame.size.width/2-20, cell.contentView.frame.size.height/2);
    [cell.contentView addSubview:label];
        
    // customize cell text label
    cell.textLabel.text = @"Cell Text";
    cell.textLabel.textColor = [UIColor darkGrayColor];
        
    return cell;
    }

It appears as though the label shows up correctly when dequeueReusableCellWithIdentifier:CellIdentifier returns a non nil value but does not show up if the return value is nil and a new cell must be instantiated.

If anyone has an idea of why this might be happening, help would be greatly appreciated.