Autolayout отлично подходит для выражения отношения одного объекта к другому и разрешения конфликтов - но в нем нет каких-либо условных концепций. Для вашего макета, я думаю, вам будет проще всего добавлять и удалять ограничения на вращение, зайдите в https://developer.apple.com/library/ios/#documentation/AppKit/Reference/NSLayoutConstraint_Class/NSLayoutConstraint/NSLayoutConstraint.html, чтобы узнать, как их добавить.
Вы также можете настроить свои ограничения и настроить приоритеты так, чтобы они делали правильную работу при вращении, но для правильной работы потребуется некоторое тестирование и настройка. Я провел некоторое тестирование локально, и я думаю, что я делаю это правильно, но это просто с пустыми представлениями, у которых нет встроенного контента. Тем не менее, вот что я думаю, что требуется, чтобы сделать все это с помощью раскадровки:
- Убедитесь, что синий вид имеет ширину < = ширина портретный и> = минимальный пейзаж ширина
- Убедитесь, что красный вид имеет минимальную высоту
- Исправьте ширину желтого изображения и установите высоту, чтобы быть> = высота портрета
- Прикрепите каждый вид к углу, в котором он всегда будет оставаться (например, штифт и нижний для надзора для желтого)
- Выравнивание верхней части желтого вида с синим видом, с низким приоритетом
- Увеличение сопротивления сжатия контента для желтого
Я думаю о нем, как, начиная с голубой вид, имеющий довольно высокий приоритет максимальный размер, а желтый вид зная, как расширить вверх, но будучи низким приоритетом , Когда он вращается, синий вид сохраняет свой максимальный размер, который освобождает желтый вид, чтобы расширяться вверх. Затем я заполняю необходимые ограничения, чтобы поддерживать выравнивание.
Это довольно сложно описать в тексте, вот скренграб, показывающий три вида и ограничения между ними. Он не показывает все, но вы можете хотя бы осмотреть отношения между видами: ![xcode showing constraints](https://i.stack.imgur.com/ockwS.png)