2009-12-07 5 views
3

Je rencontre un problème avec l'étiquette à l'intérieur de mon UITableViewCell bloquant l'image d'arrière-plan. Il semble que cela n'arrive que sur l'état non sélectionné. J'ai essayé de régler les couleurs d'arrière-plan pour effacer, mais cela ne l'a pas fait. Il adopte la couleur de fond de la tableview. Dois-je définir l'image d'arrière-plan des étiquettes aussi?Étiquette dans le fond de blocage UITableViewCell

// Neither of these worked... 
cell.textLabel.backgroundColor = [UIColor clearColor]; 
cell.contentView.backgroundColor = [UIColor clearColor]; 

screen shot

Voici mon cellForRowAtIndexPath

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SimpleTableIdentifier"]; 
    if (cell == nil) 
    { 
     cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"SimpleTableIdentifier"] autorelease]; 
    } 

    UIImage *image = [UIImage imageNamed:@"TableRow.png"]; 
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; 
    imageView.contentMode = UIViewContentModeScaleToFill; 
    cell.backgroundView = imageView; 
    [imageView release]; 

    UIImage *imageSelected = [UIImage imageNamed:@"TableRowSelected.png"]; 
    UIImageView *imageViewSelected = [[UIImageView alloc] initWithImage:imageSelected]; 
    imageViewSelected.contentMode = UIViewContentModeScaleToFill; 
    cell.selectedBackgroundView = imageViewSelected; 
    [imageViewSelected release]; 


    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 
    cell.textLabel.textColor = [UIColor whiteColor]; 
    cell.textLabel.text = [[self.trivia.questionsets objectAtIndex:indexPath.row] valueForKeyPath:@"title"]; 

    return cell; 
} 

MISE À JOUR: Kinda résolu ...

Si je mets la couleur d'arrière-plan de la table (que je suppose serait être en dessous de tout) pour effacer, puis tout à coup mon image montre où je m'attends, mais la table arrière la terre montre maintenant au-dessus de tout? Est-ce le comportement attendu? (Je n'ai pas vérifié les documents sur ce encore)

tableView.backgroundColor = [UIColor redColor]; 
cell.contentView.backgroundColor = [UIColor orangeColor]; 
cell.textLabel.backgroundColor = [UIColor yellowColor]; 

screen shot 2

... et pour finir, si je mets la table et les couleurs de fond de cellule à claire, nous sommes bons. la couleur d'arrière-plan de l'étiquette de texte ne fait aucune différence.

tableView.backgroundColor = [UIColor clearColor]; 
cell.contentView.backgroundColor = [UIColor clearColor]; 
cell.textLabel.backgroundColor = [UIColor yellowColor]; 

screen shot 3

+0

Quelle est base sdk que vous utilisez? Et comment sont le réglage du texte de votre cellule –

+0

SDK 3.1.2, je suis coller mon plein cellForRowAtIndexPath dans la question ci-dessus – rob5408

+1

@Spooky, merci pour la fixation des images! – rob5408

Répondre

0

Oui, ce comportement est normal.

Votre tableview est une sous-vue qui se trouve devant tout le reste. Si quelque chose se trouvait devant la tableview (c'est-à-dire l'arrière-plan), cela obscurcirait la table.

Questions connexes