2010-09-28 5 views
3

J'ai créé un exemple d'application qui insère 12 lignes dans tableview.Et inséré fin.Lorsque j'ai inséré mes lignes je ne veux pas de changements de texte pendant le défilement de tableview.So j'ai vérifié avec la ligne indexpath a la valeur de UITableViewCell , s'il a des valeurs signifie retourner cette cellule sinon nous avons créé un nouveau UITableViewCell.cellForRowAtIndexPath retourne toujours 0il

Mon exemple de code est ci-dessous

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
return 1; 

}

// Customize the number of rows in the table view. 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
NSLog(@"GlobalCount = %d",GlobalCount); 
return GlobalCount; 

}

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

UITableViewCell *obj = (UITableViewCell*)[tableView cellForRowAtIndexPath:indexPath]; 
if(obj!=nil) 
{ 
    NSLog(@"cell indexpath row = %d",indexPath.row); 
    NSLog(@"cell text = %d",obj.textLabel.text); 
    return obj; 
} 

else { 
    NSLog(@"obj==nil"); 
} 


static NSString *CellIdentifier = @"Cell"; 
UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
    cell.selectionStyle = UITableViewCellSelectionStyleNone; 

} 

if([DataTable count]>0) 
    cell.textLabel.text = [DataTable objectAtIndex:0]; 
// Configure the cell. 
return cell; 

}

Ce que mon objectif est, je ne veux pas mettre à jour le texte (ou UITableViewCell) pour déjà cre Ated indexpath lignes (de cellule) .So je peux vérifier cela dans cellForRowAtIndexPath, mais il retourne toujours nil.If me manque quelque chose?

j'ai vérifié en utilisant cette ligne

UITableViewCell *obj = (UITableViewCell*)[tableView cellForRowAtIndexPath:indexPath]; 
if(obj!=nil) 

Plz me aider?

Merci à l'avance ......

Répondre

4

Let la vue de table décider id-il besoin de mettre à jour la cellule ou non. Supprimez simplement la première partie de votre code et tout se déroulera sans problème. N'hésitez pas à lire le doc UITableView.

+0

Après avoir inséré toutes les lignes cela fonctionne bien, puis je supprime tous les objets de DataTable (son nsmutablarray) .Maintenant je fais défiler la table il y a quelques changements de texte dans la tableview.So ce que j'ai inséré l'ordre des données n'est pas dans la tableview . Des pensées plz m'aident? – Tamil

+0

Pourquoi voudriez-vous faire quelque chose comme effacer la source de données et toujours vouloir que la table affiche son ancienne version? Si vous voulez que votre tableau soit effacé et que votre table contienne des anciennes valeurs, copiez-la d'abord dans votre source de données, puis effacez-la. – VdesmedT

+0

Ya. Vous avez raison. Pourquoi je veux effacer les données signifie, je reçois des données sur UDP recevoir. Donc, ma taille de données est aller grande et grande, son accrocher mon application.Alors je veux insérer une ligne de la source de données et supprimer les données de ce tableau.Alors il n'y a pas de grande quantité de données dans mon tableau.Ceci est ma pensée. de l'aide ? – Tamil

Questions connexes