2 çoklu çizgi etiketli özel bir hücre oluşturuyorum ve bu etiketleri tüm taraflara sabitleyin. -tableView:heightForRowAtIndexPath:
için iOS> = 8 için UITableViewAutomaticDimension
'u iade ediyorum. Ancak tablo görünümü göründüğünde hücre yüksekliği olması gerekenden daha büyüktür. Aşağı kaydırdıktan sonra yukarı kaydırdıktan sonra hücre normal yüksekliğini alır. Bu davranış nasıl düzeltilir?UITableViewAutomaticDimension ile UITableViewCell yüksekliği Yanlış
yüksekliği için Kod:
- (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;
}
Ve sonuç:
kaydırma sonra:
belirlerim olmadığında sorun bitti
Teşekkürler, bu sorunumu giderdi. Bunun neden düzeltildiğini anladığımdan emin değilim ama eminim ki konunun daha fazla araştırılmasından sonra bana gelecektir. Tekrar teşekkürler! –
Herhangi bir fikir _why_ bu çalışır? –