Использование autolayout в tableHeaderView

у меня естьUIView подкласс, который содержит многострочныйUILabel, Это представление использует autolayout.

Я хотел бы установить эту точку зрения какtableHeaderView изUITableView (не заголовок раздела). Высота этого заголовка будет зависеть от текста метки, который, в свою очередь, зависит от ширины устройства. Разновидность сценария autolayout должна быть хороша в.

Я нашел и попыталсямного много решения чтобы заставить это работать, но безрезультатно. Некоторые из вещей, которые я пробовал:

установкаpreferredMaxLayoutWidth на каждом ярлыке во времяlayoutSubviewsопределяяintrinsicContentSizeпытаясь выяснить необходимый размер для представления и установкиtableHeaderViewкадр вручную.добавление ограничения ширины к представлению, когда установлен заголовоккуча других вещей

Некоторые из различных сбоев, с которыми я столкнулся:

метка выходит за пределы ширины вида, не переноситсявысота кадра равна 0приложение падает с исключениемAuto Layout still required after executing -layoutSubviews

Решение (или решения, если необходимо) должно работать как для iOS 7, так и для iOS 8. Обратите внимание, что все это делается программно. Я создалнебольшой пример проекта в случае, если вы хотите взломать его, чтобы увидеть проблему. Я сбросил свои усилия до следующей начальной точки:

SCAMessageView *header = [[SCAMessageView alloc] init];
header.titleLabel.text = @"Warning";
header.subtitleLabel.text = @"This is a message with enough text to span multiple lines. This text is set at runtime and might be short or long.";
self.tableView.tableHeaderView = header;

Что мне не хватает?

Ответы на вопрос(8)

Ваш ответ на вопрос