2014-11-04 4 views
0

У меня есть UITableView с четырьмя рядами. У моих четырех ячеек есть различное количество многострочного контента. Конечно, мне нравится, когда автоматическая компоновка определяет оптимальную высоту каждой ячейки ... но я бы хотел, чтобы каждая из четырех ячеек была одинаковой высоты, причем эта высота была высотой самых высоких.iOS 8: Используйте динамическую высоту строки с автоматической компоновкой ... но также сделайте все ячейки одинаковой высоты

Возможно ли это?

ответ

0

Возможно да, но вам нужно сделать расчет затем перезагрузить Tableview вместо того, чтобы позволить heightForRowAtIndexPath:(NSIndexPath *)indexPath заботиться о нем для вас ...

Например

-(CGFloat)findGreatestCellHeight 
{ 
    CGFloat height = 0.0f; 

    for (NSInteger i = 0; i < CELL_COUNT; i++) { 

     NSString *text = [TEXT_ARRAY objectAtIndex:i]; 

// note WIDTH should match your cells textLabel width... Personally I'd explicitly set that in a custom UITableViewCell 

     CGSize textSize = [text sizeWithFont:THE_TEXTLABELS_FONT constrainedToSize:CGSizeMake(WIDTH, HUGE_VALF) lineBreakMode:NSLineBreakByWordWrapping]; 


     if (textSize.height > height) 
      height = textSize.height; 
    } 

    return height; 
} 
+0

не ответ я надеялся услышать ... но спасибо! –

+0

Возможно, это было бы не идеально для больших наборов данных, но для 4 ячеек я думаю, что все в порядке. – Magoo

+0

Основная проблема заключается в том, что мои вычисления не так просты, как просто вычисление размера одной метки. Есть несколько многострочных меток с переменным пространством между ними ... это просто чревато проблемами, пытаясь вычислить, что независимо от автоматической компоновки. –

Смежные вопросы