В настоящее время я создаю компонент пользовательского интерфейса для приложения 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на небольших устройствах).
Причины
Причина, по которой я ищу это поведение, в значительной степени связана с дизайном.Предполагается, что этот компонент не существует в различных размерах, а только в двух определенных размерах - «нормальный» размер и меньший размер для случаев, когда нормальный размер не подходит.