Realizzo celle personalizzate con 2 etichette multilinea e pin queste etichette su tutti i lati. Quando in -tableView:heightForRowAtIndexPath:
per iOS> = 8 restituisco UITableViewAutomaticDimension
. Ma quando appare la vista tabella l'altezza della cella è più grande di quanto dovrebbe essere. Dopo aver scorrere verso il basso e quindi scorrere verso l'alto, la cella assume l'altezza normale. Come risolvere questo comportamento?Altezza UITableViewCell errata con UITableViewAutomaticDimension
Codice in altezza:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8) {
return UITableViewAutomaticDimension;
}
static CCTopicTableViewCell *cell;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
cell = [tableView dequeueReusableCellWithIdentifier:@"topicCellIdentifier"];
});
cell.topic = [self.topics topicAtIndexPath:indexPath];
cell.bounds = CGRectMake(0, 0, CGRectGetWidth(self.tableView.bounds), CGRectGetHeight(cell.bounds));
[cell setNeedsLayout];
[cell layoutIfNeeded];
CGSize size = [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
return size.height + 1;
}
E il risultato:
Dopo lo scorrimento:
Grazie, questo ha risolto il problema. Non sono sicuro di aver capito perché lo risolve, ma sono sicuro che dopo aver approfondito l'argomento verrà da me. Grazie ancora! –
Qualche idea per quale motivo? –