Когда у вас нет ограничений, iOS использует нечто, известное под маской авторазмера, чтобы создавать для вас ограничения во время выполнения, блокируя ваши представления на месте, где бы они ни находились в Интерфейсном Разработчике.Эти ограничения не будут работать хорошо для разных размеров контента или разных устройств, поэтому вы всегда должны полностью ограничивать свой пользовательский интерфейс.
Когда вы добавили единственное ограничение, Interface Builder сказал вам, что ваш интерфейс не был должным образом ограничен (красная стрелка рядом с вашим контроллером представления) и даст вам указания, если вы посмотрите на этот контент.Однако запуск приложения с единственным ограничением на эту метку означал, что система не применяла маску автоматического изменения размера, как обычно, и система макета фактически просто устанавливала все остальные значения на ноль во время выполнения.Это включает height
и width
метки, а также ее позиции x
и y
.С нулями для всех этих значений, то, что вы видите здесь, это содержимое вашей метки, отображаемой в 0,0
, с меткой, которая имеет 0 высоту и ширину.Однако при значении clipsToBounds
по умолчанию false
содержимое метки по-прежнему отображается, и поэтому отображается так, как вы видите.
tl; dr: вам нужно ограничить весь пользовательский интерфейс, как пытался Интерфейсный Разработчиксказать вам.