Ce que j'ai fait est créé une vue TableCell personnalisée qui est remplie avec des informations d'un tableau d'objets. Chaque TableCell se charge dans leTableView ne remplit pas jusqu'à ce que je défile la cellule lorsque la hauteur de la cellule est modifiée
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"CellIdentifier";
Cell *cell = (Cell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"Cell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
NSUInteger row = [indexPath row];
NSDictionary *rowData = (NSDictionary *)[self.surveys objectAtIndex:row];
cell.info1.text = [rowData objectForKey:@"info1"];
cell.info2.text = [rowData objectForKey:@"info2"];
cell.info3.text = [rowData objectForKey:@"info3"];
cell.otherInfo = [rowData objectForKey:@"otherInfo"];
return cell;
}
En plus de cela, je précise une hauteur personnalisée pour la cellule ici
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 76.0;
}
Lorsque la valeur de tableView: heightForRowAtIndexPath: est 76 il charge toutes les cellules que je peut voir et ils ne sont jamais vides. Sans modifier quoi que ce soit d'autre dans le code, je peux modifier la valeur de tableView: heightForRowAtIndexPath: et il montrera seulement la première valeur de cellule quand la vue est chargée. Lorsque je défile vers le bas, ils sont actualisés avec une valeur dès que leur bord supérieur atteint le haut de l'écran. Quand je remonte vers le haut et que j'étire la vue pour qu'elle rebondisse, les inférieures disparaissent. Pour autant que je sache, le changement de hauteur affecte en quelque sorte la façon dont ils sont chargés, mais je ne peux pas pour la vie de moi voir comment.
Est-ce que cela se produit également si vous utilisez UITableViewCells au lieu de votre cellule personnalisée? – mvds
Cela n'arrive pas si c'est un UITableViewCell – mwright