У меня есть приложение для iPad, в котором есть экран входа в систему, с элементами управления входами, содержащимися в UIView.Как я могу использовать ограничения AutoLayout, чтобы указать другой макет на пейзаж или портрет без использования кода?
Когда iPad находится в портретной ориентации, у меня есть вход UIView у основания и центра приложения, почти прямо над клавиатурой, а логотип компании находится в UIImageView с центром в верхней части. Я использую ограничения AutoLayout, чтобы логотип компании тяготел к вершине и справа, а пользовательский интерфейс UIView тяготел к нижней и правой.
http://chattypics.com/files/ipadportrait_0dzalz3ipx.png
Когда я повернуть это пейзаж, эффект что-то вроде этого:
http://chattypics.com/files/ipadlandscape1_j15ps5c95u.png
Я хочу, чтобы это выглядело как этот
http://chattypics.com/files/ipadlandscape2_sobufqkdhg.png
Итак, Я хочу, чтобы оба элемента были бок о бок, и я хочу, чтобы Login UIView был далее вправо. Размер интервала справа от UIView в портретном режиме больше, чем я хочу для ландшафтного режима, а расстояние до нижней части меньше, чем я хочу для ландшафтного режима. Я мог бы справиться с этим через «центр в контейнере» вместо этого, но это также не сработало бы в ландшафтном режиме.
Я использовал технику in this post, чтобы сделать вещи «бок о бок» в ландшафтном режиме, но я не верю, что этого будет достаточно, потому что я хочу, чтобы макеты в «представлениях» также отличались друг от друга на вращение.
Я могу придумать, как это сделать программно, но я не могу себе представить, что это все, что уникально необходимо, так есть способ использовать только ограничения в IB, чтобы снять это? Некоторые «это то, что ограничения в IB были разработаны для« пути », возможно, с приоритетами? Или мне просто нужно сделать это в коде?
Я не уверен, что это может быть достигнуто без написания кода. Вы можете посмотреть мой ответ на этот вопрос: http: // stackoverflow.com/questions/17772922/can-i-use-autolayout-to-обеспечить-different-constraints-for-landscape-and-portrait/19719482 # 19719482 – knl