iOS 8.3 ломает автоматическую высоту ячейки

Давно читал, первый раз постер.

Я использую автоматическую высоту ячейки с автоматическим макетом в своем приложении. В iOS 8.3 и 8.4 это кажется неработающим. У меня есть пример проекта. При сборке версии 8.2 или ниже работает нормально. Высота ячеек определяется Autolayout. При сборке 8.3 или 8.4 не работает. Я искал в Интернете, и я не вижу, чтобы кто-то писал об этой проблеме.

Взгляните на скриншоты ниже. Любая помощь приветствуется.

ZIP-файл проекта Cell Height

http://jeffburg.com/skitch/CellHeightProjectComparison.png

Спасибо! -Джефф


person Jeffrey Bergier    schedule 03.05.2015    source источник
comment
stackoverflow.com/a/29583343/2442804 может помочь вам!?   -  person luk2302    schedule 03.05.2015


Ответы (3)


Я проверил ваш код и нашел проблему.

Читая статью AppCodas о ячейках с автоматическим размером, кажется, что вы должны использовать estimatedRowHeight, когда используя UITableViewAutomaticDimension (сам не использовал, не могу подтвердить). Поэтому либо удалите следующую строку:

self.tableView.rowHeight = UITableViewAutomaticDimension

или добавьте (если высота вашей ячейки будет меняться в зависимости от содержимого):

self.tableView.estimatedRowHeight = 122;
person Gasim    schedule 03.05.2015
comment
Согласно Гасиму, вы пропустили estimatedRowHeight, и это необходимо вместе с установкой rowHeight на UITableViewAutomaticDimension, чтобы правильно использовать табличные представления с автоматическим изменением размера. - person darren102; 04.05.2015
comment
Я пытался удалить ответы, но у меня пока недостаточно репутации :-/ - person Jeffrey Bergier; 04.05.2015
comment
Большое спасибо за решение. - person Hiren; 01.10.2015

Раньше у меня была такая же проблема в моем проекте iOS> 8.3. Я исправил ваш проект sample, внедрив методы делегата вместо установки rowHeight в viewDidLoad. . Это определенно ошибка, связанная с UITableView, поэтому вы не сделали ничего плохого.

person t0day    schedule 03.05.2015
comment
Я забыл упомянуть, что всегда полезно указать предполагаемую RowHeight. В вашем случае я просто ссылаюсь на cellHeight из раскадровки. - person t0day; 03.05.2015
comment
Вот это да. как неловко. Какое легкое исправление. Большое спасибо! Я пытался удалить ответы, но у меня пока недостаточно репутации :-/ - person Jeffrey Bergier; 04.05.2015

Добавьте этот метод в свой делегат:

- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return UITableViewAutomaticDimension;
}
person Enrico Susatyo    schedule 12.05.2015