Dans ma vue de table, j'ai 4 UIButton
s, 2 dans chaque rangée de tableau. Initialement tous les boutons ont une image sur eux (ils sont codés en dur). Maintenant, il y a un bouton dans mon application qui, lorsque tapé remplace les images sur les boutons avec de nouveaux en utilisant la méthode setImage
, puis recharge la vue de la table. Mais malheureusement, je reçois l'ancienne vue de la table que je veux dire avec de vieilles images. Comment puis-je obtenir les nouvelles images sur les boutons?Recharger des images dans les boutons présents dans la vue de la table
Ma mise en œuvre cellForRowAtIndexPath
: - // Personnalise l'apparence des cellules de vue de table.
- (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];
// }
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
if(indexPath.row == 0)
{
button1=[[UIButton alloc] initWithFrame:CGRectMake(15,5,100,87)];
[button1 setImage:[UIImage imageNamed:@"BUTTON.png"] forState:UIControlStateNormal];
[button1 addTarget:self action:@selector(ClickTo:) forControlEvents:UIControlEventTouchUpInside];
[cell.contentView addSubview:self.button1];
button2=[[UIButton alloc] initWithFrame:CGRectMake(135,5,100,87)];
[button2 setImage:[UIImage imageNamed:@"TURN OFF.png"] forState:UIControlStateNormal];
[button2 addTarget:self action:@selector(ClickTo:) forControlEvents:UIControlEventTouchUpInside];
[cell.contentView addSubview:button2];
}
else if(indexPath.row == 1)
{
button3=[[UIButton alloc] initWithFrame:CGRectMake(15,5,100,87)];
[button3 setImage:[UIImage imageNamed:@"JUMP.png"] forState:UIControlStateNormal];
[button3 addTarget:self action:@selector(ClickTo:) forControlEvents:UIControlEventTouchUpInside];
[cell.contentView addSubview:button3];
button4=[[UIButton alloc] initWithFrame:CGRectMake(135,5,100,87)];
[button4 setImage:[UIImage imageNamed:@"CLOSE.png"] forState:UIControlStateNormal];
[button4 addTarget:self action:@selector(ClickTo:) forControlEvents:UIControlEventTouchUpInside];
[cell.contentView addSubview:button4];
}
else
{
// Do something here
}
return cell;
}
pouvez-vous mettre votre implémentation cellForRowAtIndexPath? – AmineG
J'ai édité ma question, s'il vous plaît vérifier et fournir une solution plz – Christina
Vous créez de nouveaux boutons à chaque fois, vous ne devez créer des boutons qu'une seule fois, puis les utiliser. Votre code obtiendra une cellule existante (avec de nouvelles images) et ajoutera d'autres boutons (avec d'anciennes images) Essayez de sous-utiliser UITableViewCell avec des boutons comme attributs/propriétés – AmineG