AutoLayout: как ограничить UIView не выше, чем высота, необходимая для размещения всех его подпредставлений?
Есть несколько ответов на SO, которые, кажется, касаются одного и того же вопроса, такого как этот. Однако ничего из этого не сработало.
Цель состоит в том, чтобы использовать AutoLayout и раскадровку для создания UIView, назовите его parentView
, это достаточно высокий, чтобы содержать его подпредставления и не выше.
Это легко сделать в коде, но цель состоит в том, чтобы сделать все это в Storyboard с ограничениями AutoLayout и без указания статической высоты (например, предположим, что одно из подпредставлений является UILabel, так parentView
будет расти соответственно, если высота UILabel увеличивается из-за длинного текста).
Это возможно?
1 ответ
На самом деле это можно сделать не с добавлением ограничений, а с их отсутствием!
Перетащите новый View
в суперпредставление и задайте ему два ограничения: Center X и Center Y. Перетащите несколько представлений / меток и добавьте их в View
,
Для того, чтобы это работало, подпредставления внутри должны иметь ограничения на ведущий / трейлинг / верх / низ View
скрепляя все вместе Это "определяет" ограничения для View's
ширина и высота, чтобы XCode не злился на вас.
Вот и все. Пример проекта.