2014-12-21 2 views
3

Я разрабатываю приложение iOS, которое на самом деле является оберткой для существующего веб-приложения. Он добавляет некоторые дополнительные функции, которые могут быть достигнуты только таким образом.Различные ориентации для iPhone и iPad в одном раскадровке

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

Возможно ли это сделать, используя только одну раскадровку, или мне нужно использовать две раскадровки (один для iPhone, только для портрета, а другой для iPad, настроенный только на пейзаж); следовательно, дублируя мой дизайн?

ответ

2

Откройте файл info.plist как код и вставьте этот код:

<key>UISupportedInterfaceOrientations</key> 
<array> 
    <string>UIInterfaceOrientationPortrait</string> 
</array> 
<key>UISupportedInterfaceOrientations~ipad</key> 
<array> 
    <string>UIInterfaceOrientationLandscapeLeft</string> 
    <string>UIInterfaceOrientationLandscapeRight</string> 
</array> 

работает хорошо для меня!

2

Да, вы можете сделать это в iOS8 есть очень интересная особенность назвала Adaptive Layout , по которому То же раскадровка теперь может быть использована как для IPADS и айфонов, работающего под управлением IOS 8. Там нет необходимости держать на устройство раскадровки синхронно друг с другом.

Здесь очень хорошо tutorial на этом это поможет вам.

+0

Thans для вашего ответа! Я знаю об этой функции, но проблема заключается в следующем. На iPhone я хочу только разрешить портретную ориентацию, а на iPad - только пейзаж. Поскольку это задано для раскадровки в основных настройках проекта, я уверен, как это сделать? –

+0

хм, тогда я предлагаю вам пойти с файлом xibs вместо раскадровки, так как очень легко контролировать такие ситуации в xib. – Irfan

-1

Просто придерживайтесь это в App Делегат:

- (NSUInteger)application:(UIApplication *)application 
supportedInterfaceOrientationsForWindow:(UIWindow *)window 
{ 
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
     return UIInterfaceOrientationMaskLandscape; 
    else 
     return UIInterfaceOrientationMaskPortrait; 
} 
Смежные вопросы