Двухступенчатая автоматическая разметка - PullRequest
0 голосов
/ 14 сентября 2018

В настоящее время я создаю компонент пользовательского интерфейса для приложения iOS.Обычно предполагается, что ширина компонента составляет 350 пт, который я установил внутри компонента с помощью автоматического макета:

self.widthAnchor.constraint(equalToConstant: 350.0).isActive = true

Теперь, если недостаточно места (из-за других ограничений вне компонента)Я хочу, чтобы компонент стал меньше, но не плавно - я хочу, чтобы компонент чередовался только между двумя возможными размерами - 350pt обычно и 300pt шириной, если нет места для 350pt.Это как-то достижимо?

Пример проекта:

https://www.icloud.com/iclouddrive/055TkWS8aLqDhFDOPi-7qi8EA#LayoutExample.zip

Я создал очень упрощенный пример проекта, чтобы проиллюстрировать проблему.Он содержит пользовательский компонент (MyComponent), представляющий собой стек с четырьмя кнопками.Этот компонент встроен в контроллер основного вида, и автоматическая компоновка настроена так, чтобы он не вытек из экрана.Это хорошо работает на больших устройствах, но компонент слишком велик для экрана iPhone SE и iPhone 4. В этих случаях я бы хотел, чтобы компонент стал другого размера (в проекте этот компонент регулярно составляет 500pt и должен быть 300ptна небольших устройствах).

Причины

Причина, по которой я ищу это поведение, в значительной степени связана с дизайном.Предполагается, что этот компонент не существует в различных размерах, а только в двух определенных размерах - «нормальный» размер и меньший размер для случаев, когда нормальный размер не подходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...