У меня было много времени, чтобы прочитать другие вопросы, прежде чем задавать этот вопрос, и пока не удалось решить проблему - надеюсь, кто-то может помочь.Автоматически устанавливать высоту пользовательского UIView на основе его содержимого?
У меня есть пользовательский вид предупреждений, подкласс UIView
. Я пытаюсь установить его в состояние, когда его ширина фиксирована, и его высота динамически растет на основе высоты его двух меток (title
и message
) и динамического количества кнопок действий, с которыми он может быть настроен.
Я использовал AutoLayout для настройки элементов управления, которые работают нормально, но пока я все еще вручную настраиваю рамку самого представления в своем инициализаторе.
Мне нужно, чтобы высота представления была рассчитана по высоте двух моих меток и кнопок n плюс расстояние между ними.
Я пробовал предоставить intrinsicContentSize
для моего просмотра, но этот метод никогда не вызывается, и он даже не просит его, поэтому я в тупике о том, как действовать.
Подводя итоги: я, вероятно, нуждаюсь в iOS9 UIStackView
, но у меня нет такой роскоши, поэтому мне нужно испечь что-то подобное в iOS 7/8. Я посмотрел на OAStackView
, но я бы предпочел не использовать внешний зависимость.
вы можете попробовать создать выход для ограничений высоты для представления, а затем управлять 'heightContraint.constant' в соответствии с высотой ваших меток. –
Когда я обновляю ограничение? Я не уверен, когда высота этих меток фактически рассчитана. – Luke
Попробуйте установить viewDidLayoutSubViews –