2009-04-04 8 views
0

J'ai une vue groupée qui utilise deux cellules de table personnalisées différentes.Problème avec UITableViewCell personnalisé devenant vide?

Lorsque je fais défiler la table de sorte qu'une (ou plusieurs) des cellules passe au-dessus ou au-dessous de ce qui est visible, ces cellules deviennent vides. Lorsque je fais défiler vers le haut (ou vers le bas) pour voir ces cellules, elles sont toujours vides. Pourquoi est-ce? Les cellules présentaient le contenu approprié lors de leur chargement initial.

Voici le code qui charge les cellules au indexPath indiqué:

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

    if(indexPath.section==0) 
    { 
     FMLFullTextCell = (FullTextCell *) [tableView dequeueReusableCellWithIdentifier:FullTextCell_ID]; 
     if(FMLFullTextCell==nil) 
     { 
      [[NSBundle mainBundle]loadNibNamed:@"FullTextCell" owner:self options:nil]; 
      [FMLFullTextCell initWithFMLText:@"Here is some demo fml text"]; 
     } 
     return FMLFullTextCell; 
    } 
    else 
    { 
     FMLAuthorCell=(Author *)[tableView dequeueReusableCellWithIdentifier:AuthorCell_ID]; 
     if(FMLAuthorCell==nil) 
     { 
      [[NSBundle mainBundle]loadNibNamed:@"Author" owner:self options:nil]; 
      [FMLAuthorCell initWithTitle:@"Author" initWithAuthor:@"JohnnyAuthor"]; 
     } 
     return FMLAuthorCell; 
    } 

} 

Répondre

2

Vous n'avez pas fourni suffisamment d'informations pour répondre à cette question.

Habituellement, UITableViewCells est mis en cache lorsqu'il est créé via initWithFrame:reuseIdentifier: et accessible via dequeueReusableCellWithIdentifier:. Je suppose que vous n'avez pas spécifié d'identifiant de réutilisation différent pour vos deux différentes cellules de tableau personnalisées, et à cause de cela, ils sont mélangés dans votre code d'une manière ou d'une autre. Cela peut provoquer le comportement décrit.

De toute façon, sans voir de code, c'est difficile de répondre. Vous devriez au moins nous montrer la méthode tableView:cellForRowAtIndexPath de votre source de données.

+0

J'ai mis à jour le code avec la méthode spécifiée - J'ai essayé d'utiliser les identifiants personnalisés - mais je suis toujours en train d'avoir le même problème ... des pensées? – zpesk

+0

nevermind je l'ai corrigé - je n'ai pas ajouté cet identifiant aux fichiers xib – zpesk

Questions connexes