Всем привет!
Изучаю книгу Modern Auto Layout и застрял на одной задаче, уже много вариантов перепробовал, но безуспешно. Надо создать зеленое вью, которое должно быть квадратным и в центре экрана, оно должно быть как можно больше, оставаясь при этом полностью на экране. Для iPhone в портретном виде квадрат такой же широкий, как и экран. В альбомной ориентации он такой же высокий, как высота экрана:
-
Создать этот макет можно с помощью Interface Builder или в коде. (я стараюсь сделать в коде, но даже в storyboard не получается)
-
Тестирование на различных устройствах, от самого маленького iPhone SE до более крупных iPad. Убедитесь, что зеленый вид остается квадратным, расположенным по центру вида и максимально большим, полностью помещаясь на экране.
Подсказки И Советы
-
Для этой компоновки необходимо использовать комбинацию неравенства и дополнительных ограничений.
-
Начните с описания положения зеленого вида, сделайте зеленый вид квадратом, а затем работайте над шириной и высотой.
-
Помните, что когда что-то в нашем макете должно быть правдой, это обязательное ограничение. Когда мы хотим что-то как можно ближе, это необязательное ограничение.
-
Сделайте зеленый вид квадратом, придав ему равной ширину и высоту.
-
Представьте себе площадь, расширяющуюся от центра. Ширина никогда не должна быть больше ширины корневого вида. Высота никогда не должна быть больше высоты корневого вида.
-
Ограничений на неравенство недостаточно, чтобы зафиксировать высоту или ширину зеленого вида. Вам нужно добавить зависимость, которая тянет ширину или высоту как можно ближе к ширине или высоте корневого вида, не нарушая других зависимостей.
-
Вы можете решить эту проблему с помощью 5 обязательных ограничений (2 из которых равны) и 1 дополнительного ограничения.
Буду рад любой подсказке или решению, хочу понять все же принцип как это сделать и двигаться дальше.