Si vous souhaitez que vos lignes aient des hauteurs différentes, vous devez calculer la hauteur de chaque ligne.
J'ai rencontré un tel problème. J'ai calculé les hauteurs des rangées en fonction du contenu analysé à partir d'une chaîne JSON. voici ce que j'ai fait.
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
// parse json
id qWeiboContent = [self.array objectAtIndex:indexPath.row];
float totalContentHeight;
QWeiboContentModel *model = [self getQWeiboContentFromJSON:qWeiboContent];
QWeiboContentModel *subModel = nil;
totalContentHeight += model.forOrComment.heightValue; // comment text view's height
totalContentHeight += model.content.heightValue; // content text view's height
totalContentHeight += 21 * 2; // 21 is height of a label
totalContentHeight += model.imageUrl.heightValue;
totalContentHeight += CELL_CONTENT_MARGIN;
if ([model.type isEqualToString:REPOSTED]) {
id qWeiboSource = [qWeiboContent objectForKey:@"source"];
subModel = [self getQWeiboContentFromJSON:qWeiboSource];
model.source = subModel;
totalContentHeight += subModel.forOrComment.heightValue;
totalContentHeight += subModel.content.heightValue;
totalContentHeight += 21 * 2;
totalContentHeight += subModel.imageUrl.heightValue;
totalContentHeight += CELL_CONTENT_MARGIN;
}
if (self.arrayQQWeibo == nil) {
self.arrayQQWeibo = [[NSMutableArray alloc]init];
}
[self.arrayQQWeibo addObject:model];
return totalContentHeight;
}
Bien sûr, il y a. Mais comment le faire dépend fortement de ce que vous voulez faire. Si vous voulez changer la hauteur de la cellule en fonction d'une image, c'est assez simple, si vous voulez que la hauteur de la cellule dépende des retours à la ligne dans une chaîne, il y a plus de calculs. Alors qu'essayez-vous de faire? –
Eh bien, j'ai une cellule personnalisée, qui prend en UILabel ou un UIImageView. Comme vous l'avez dit, ajuster la hauteur en fonction de la hauteur de l'image est assez trivial. Mais comment puis-je savoir de combien d'espace UILabel a besoin? –