J'ai trouvé quelques messages qui sont similaires à mon problème mais pas tout à fait la même chose.dupliquer des lignes dans tableview sur uitableviewcell
Dans mon application, l'utilisateur peut naviguer entre plusieurs visualisations en vue d'obtenir le résultat souhaité. Lorsqu'un utilisateur avance, recule, avance, etc., il est à noter que les lignes sont redessinées/réécrites et le texte devient plus audacieux et plus audacieux.
J'ai trouvé que dans certains de ces messages cela peut être lié à la façon dont je crée les lignes, en utilisant un uilable dans la méthode cellforrowatindexpath
.
Y a-t-il quelque chose que je dois faire pour que les lignes ne soient pas repeuplées/redessinées chaque fois qu'un utilisateur va en avant et en arrière entre les vues de table? Ai-je besoin d'ajouter quelque chose au code ci-dessous ou d'ajouter quelque chose à la méthode viewwillappear (actuellement il y a un 'reloaddata' dans la viewwillappear pour la table mais ne semble pas aider)?
Voici mon code:
- (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 = UITableViewCellAccessoryDisclosureIndicator;
UILabel *label = [[[UILabel alloc] init] autorelease];
label.font = [UIFont fontWithName:@"Arial-BoldMT" size:20];
label.frame = CGRectMake(10.0f, 10.0f, 220.0f, 22.0f);
label.textColor = [UIColor blackColor];
label.backgroundColor = [UIColor clearColor];
label.opaque = NO;
label.text = [mapareaArray objectAtIndex:indexPath.row];
[cell.contentView addSubview:label];
CustomCellBackgroundView *bgView = [[CustomCellBackgroundView alloc] initWithFrame:CGRectZero];
bgView.borderColor = [UIColor clearColor];
bgView.fillColor = [UIColor whiteColor];
bgView.position = CustomCellBackgroundViewPositionSingle;
cell.backgroundView = bgView;
return cell;
}
Merci beaucoup pour cela. Grande aide. Une dernière question à ce sujet - Je n'ai pas de contexte de programmation, donc je ne sais pas ce que vous voulez dire par l'utilisation de #define dans le fichier d'en-tête. Quelle est la syntaxe pour le faire? Je l'ai déjà vu et j'ai essayé de mettre '#define kMyTag' dans l'en-tête mais ça ne marche pas ...Je suppose que vous avez besoin de définir kMyTag à une valeur, mais je ne sais pas quelle serait la syntaxe pour le faire. Pouvez-vous aider? – SKayser