Различные Xib для портретного и ландшафтного режима для iPad - PullRequest
5 голосов
/ 06 января 2012

У меня есть сомнения в использовании 2 XIb для одного класса, меняющего ориентацию для Ipad.Это правильная практика?Для Ipad в портретном режиме у меня есть один дизайн, а для ландшафтного режима у меня другой дизайн (немного похож на портрет, но не могу настроить 'в портретном).Могу ли я все делать в программировании или в порядке использования 2 Xib, с какими сложностями или проблемами я должен столкнуться при использовании 2 Xib?

Ответы [ 3 ]

8 голосов
/ 06 января 2012

Если вы спрашиваете, является ли использование двух NIB для вашей ориентации стандартной практикой, ответ будет отрицательным.

Если ваш пользовательский интерфейс для ландшафта и портрета радикально отличается , то это будет более приемлемым подходом. Но вы могли бы просто использовать один NIB с двумя видами внутри (один для ландшафта, один для портрета).

Принятый шаблон проектирования, выдвинутый Apple, заключается в том, что ваш контроллер представления управляет как альбомной, так и портретной ориентацией и либо настраивает его представление (используя маски автоматического изменения размера, а также подключается к различным методам делегата, запускаемым при вращении, для добавления / удаления / анимации представлений). ) или заменяет представление чем-то другим.

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

«Стандартную практику» всегда довольно трудно определить, и, возможно, некоторые люди со мной не согласятся, но я, конечно, не видел приложений, которые используют два NIB для их альбомной / портретной ориентации, и я не видел ни одного Пример кода Apple, который делает это либо. Надеюсь, это поможет!

3 голосов
/ 06 января 2012

Зависит от сложности реализации программирования.Если вам нужно заменить кнопку, то вы должны изменить кадр программно.Если дизайны отличаются в портретном и альбомном режимах, то вам следует использовать 2 файла XIB.

Используя 2 xib, трудно перенести информацию из одного xib в другой.Например, если у xib есть текстовое поле, вы должны скопировать в него текст и вставить второй xib и т. Д.

2 голосов
/ 06 января 2012

Вы можете использовать один и тот же XIB, но иметь два разных вида: один для портрета и один для ландшафта. В «didRotateFromInterfaceOrientation:» переключите виды в зависимости от ориентации. Проверьте следующую ссылку, как это можно сделать:

http://www.theappcodeblog.com/2011/03/30/orientation-change-tutorial-change-the-view-when-the-orientation-changes/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...