2009-02-10 10 views
0

Je suis allé aussi loin que d'utiliser le code suivant pour définir la couleur de fond d'une cellule TableView (en cellForRowAtIndexPath)couleur de fond cellulaire ne montre que le texte

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

    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease]; 
     cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton; 


     cell.backgroundColor = [UIColor yellowColor]; 
     cell.contentView.backgroundColor = [UIColor yellowColor]; 

     UIView* backgroundView = [ [ [ UIView alloc ] initWithFrame:CGRectZero ] autorelease ]; 
     backgroundView.backgroundColor = [ UIColor yellowColor ]; 
     cell.backgroundView = backgroundView; 
     for (UIView* view in cell.contentView.subviews) 
     { 
      view.backgroundColor = [ UIColor yellowColor ]; 
     } 
    } 

    // Set up the cell... 
    if ([[menuList objectAtIndex:indexPath.row] isKindOfClass:[Category class]]) 
    { 
     cell.text = ((Category *)[menuList objectAtIndex:indexPath.row]).name; 
    } 
    else 
    { 
     [cell setText: [menuList objectAtIndex:indexPath.row]]; 
    } 


    return cell; 
} 

Cependant, quand il rend seulement une partie de la cellule a l'arrière-plan appliqué comme ceci (où z est le remplissage de bg), même l'arrière-plan de l'accessoire est la couleur mais pas le texte.

xxxxxxxxxxxxxxxxxxxx 
zzzSearch   
xxxxxxxxxxxxxxxxxxxx 

La seule façon que je vois de pouvoir changer l'arrière-plan du texte est en définissant la couleur d'arrière-plan de l'affichage du tableau entier dans Interface Builder

Répondre

0

Je parie que votre texte est un UILabel opaque. Je me souviens d'avoir à ajouter myText.backgroundColor = [UIColor clearColor] au texte de contenu UILabel pour que cela fonctionne correctement.

+0

Merci sonne comme une racine prometteuse à la solution. J'ai essayé ce que vous avez suggéré (voir l'exemple de code mis à jour ci-dessus), mais toujours pas de joie, des suggestions? –

+0

Pouvez-vous poster une capture d'écran? –

+0

Pas facilement non car Im un peu d'un mac newb, mais je suis sûr que c'est ce que vous suggérez. Je pense que l'étiquette n'est tout simplement pas opaque. Mais comme vous pouvez le voir ci-dessus, j'essaie tout ce que je peux penser. Ai-je manqué quelque chose d'évident? –

0

J'ai réussi à le faire en utilisant un objet TableViewCell sur mesure, mais je suis sûr qu'il doit y avoir un moyen de le faire sans

Questions connexes