2013-10-15 3 views
0

Я разработал xib для iPhone в ландшафтном режиме, который имеет полноэкранный вид, содержащий множество подзонов.iOS - Автоотключение от пейзажа к портрету

Можно ли автоматически адаптировать его к портрету как нарисованному здесь: http://img850.imageshack.us/img850/5523/5cxw.jpg без необходимости создавать тонны запретов для каждого подвид?

+0

Разделите свой интерфейс на блоки, внутренние ограничения которых остаются в любой ориентации, это уменьшит количество недопустимых ограничений. Если это невозможно (очень редкий случай), вы можете использовать этот способ: скрыть главный вид при начале вращения, загрузить правильный контроллер основного вида для нового макета, а затем показать его. –

+0

В прикрепленном изображении вам нужно обновить не более 4 ограничений при повороте. Где «тонны»? –

ответ

1

Включите все подземелья в новом UIView. Установите основные, конечные, верхние и нижние ограничения между новым видом и основным видом. Затем в willRotateToInterfaceOrientation:duration: установите правильные constant из этих ограничений. В ландшафте все они должны быть равны 0. В портрете их установите соответственно, чтобы получить внешний вид, который вы ищете.

+0

Я пробовал как ваше предложение, так и @Igor, и из-за отсутствия знаний об автомакете все усложнялось; вместо того, чтобы бороться с ограничениями и их конфликтами, я попробовал Springs & Struts отключить авто-макет: просто давая 'UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth' ко всем подзонам я достиг желаемого результата. Я, безусловно, углубится в авто-макет для будущих проектов, но в этом случае Springs & Struts казался самым простым способом. – DAN

+1

@ DAN: Конечно, автоматический макет требует некоторого обучения заранее - лекции из WWDC 2012 и 2013 года и документация являются обязательными. –

Смежные вопросы