Salut les gars. J'ai un problème avec l'animation des suppressions et des insertions sur un UITableView. Le fait est que j'ai différentes hauteurs de cellules, certaines 44,0 environ 135,0 maintenant. J'ai uitableviewstylegrouped avec différentes sections. la première rangée de chaque section est une rangée de regroupement. Au clic, je supprime toutes les lignes de cette section sauf la ligne de regroupement. mais cette animation semble bizarre, lors de l'animation (UITableViewRowAnimationTop) de la cellule 135px. J'ai essayé de mettre self.tableview.cellheight à 135 et ai commenté la tableView: cellHeightForIndexPath-Method. Et l'animation fonctionne bien. Ou je place chaque table de cellules à 135 dans tableView: cellHeightForIndexPath-Method.Problème avec RowAnimation
Il semble que le processus d'animation vérifie la hauteur de la première ligne dans les sections et prend cette hauteur de la cellule pour toutes les cellules suivantes à animer.
Quelqu'un a une idée?
- (void) showhideGroup:(int)group
{
NSMutableArray *indexPaths = [[NSMutableArray alloc] init];
MCGroup *handleGroup = [groups objectAtIndex:group];
NSMutableArray *groupRows = [visibleGroupData objectForKey:handleGroup.title];
[self.tableView beginUpdates];
if (!handleGroup.hidden) {
int row = 0;
for(MobileFieldMapping *field in groupRows)
{
if (![field.datatype matchesInsensitive:GROUPING_CELL])
{
NSIndexPath *path = [NSIndexPath indexPathForRow:row inSection:group];
[indexPaths addObject:path];
}
row++;
}
row = 0;
for(NSIndexPath *index in indexPaths)
{
[groupRows removeObjectAtIndex:index.row-row];
row++;
}
[self.tableView deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationTop];
handleGroup.hidden=YES;
}
else
{
NSMutableArray *allGroupRows = [groupData objectForKey:handleGroup.title];
int row = 0;
for (MobileFieldMapping *field in allGroupRows)
{
if (![groupRows containsObject:field])
{
NSIndexPath *path = [NSIndexPath indexPathForRow:row inSection:group];
[indexPaths addObject:path];
[groupRows insertObject:field atIndex:row];
}
row++;
}
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationTop];
handleGroup.hidden=NO;
}
[self.tableView endUpdates];
[indexPaths release];
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];
if ([cell isKindOfClass:[FormCell class]])
{
return [(FormCell*)cell height];
}
return 44.0;
}
vous devez publier le code source du délégué tableau. – karim
ok personne n'a une idée ... semble tellement – kaelum
J'ai eu ce travail, donc je pense que c'est un bug dans votre code. Vous devez publier le code FULL, ou (mieux) faire un petit exemple du problème. En outre, vous devez être plus précis en décrivant exactement comment cela "semble bizarre" - personne ne peut vous aider avec un tel flou. – Adam