У меня возникает проблема с автоматическими/динамическими представлениями заголовка раздела UITableView, которые содержат UILabel, который обертывает (numberOfLines = 0). Высота не вычисляется должным образом, особенно после прокрутки таблицы, и представления повторно используются. Иногда UILabel обертывается, иногда он усекается, иногда один или несколько ярлыков не видны, и иногда между ярлыками имеется дополнительное расстояние. Пользовательский вид содержит вертикальный UIStackView с тремя UILabels, один раз из которых обертывается.
Полное примерное приложение, демонстрирующее проблему, можно найти в https://github.com/outerstorm/tableviewHeaderTest.
Высота заголовка раздела задается автоматически в viewDidLoad со следующим:
tableView.sectionHeaderHeight = UITableViewAutomaticDimension
tableView.estimatedSectionHeaderHeight = 30.0
а также реализовала следующую heightForHeaderInSection, чтобы попытаться заставить ее работать:
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return UITableViewAutomaticDimension
}
Я также попытался вызвать setNeedsLayout() и layoutIfNeeded() в разных точках безрезультатно. Любые предложения были бы с благодарностью.
Ниже приведен снимок экрана о поведении, наблюдаемом в приложении. Первая секция отсекается, а вторая секция слишком высокая: