2014-10-03 3 views
3

У меня есть приложение iOS8, которое мне нужно для поддержки всех ориентаций во время игры, но в то время как в меню есть только портрет. Я хочу, чтобы приложение запускалось с использованием только портретного изображения, поэтому оно соответствует портретам. Проблема, с которой я сталкиваюсь, заключается в том, что я должен установить UISupportedInterfaceOrientations в файле Info.pList для поддержки всех ориентаций, потому что мне нужны все они для основной игры. Это явно заставляет мое приложение запускаться в ландшафтном режиме, если устройство боком, чего я не хочу. Я попытался установить значения в файле info.pList только на портрете, но это приводит к тому, что режим Landscape полностью перестает работать.Принудительная ориентация для приложения, поддерживающего все ориентации

Есть ли способ разрешить все ориентации в файле info.pList, но заставить изображение запуска только на портрете? Или разрешить все ориентации в моем коде, но укажите только портретные значения в файле info.pList?

+0

Хорошего ответа здесь: http://stackoverflow.com/questions/25606442/how -в-замок-портретная ориентация-на-только-основного-View-используя быстрый- –

ответ

4

Вы должны использовать 'Launch Screen File' для iOS 8 (доступно в xCode 6+). А затем примените ограничения по файлу запуска по вашему желанию (вы можете разрешить ориентацию для запуска xib в построителе истории по мере необходимости). Даже если вы хотите его для предыдущей версии, создайте отдельный заставку и установите его свойства ориентации в построителе истории.

0

Вы можете определить родительский контроллер вида с:

- (BOOL)shouldAutorotate { 
    return YES; 
} 

- (NSUInteger)supportedInterfaceOrientations{ 
    return UIInterfaceOrientationMaskPortrait; 
} 

и ваш вращающийся контроллер с видом:

- (BOOL)shouldAutorotate { 
    return YES; 
} 


- (NSUInteger)supportedInterfaceOrientations{ 
    return UIInterfaceOrientationMaskAll; 
} 
1

я столкнулся с этой проблемой тоже, и нашли отличное решение от самой Apple:

https://developer.apple.com/library/ios/technotes/tn2244/_index.html#//apple_ref/doc/uid/DTS40009012-CH1-ALLOWING_YOUR_APP_TO_ROTATE_INTO_PORTRAIT_ORIENTATION_AFTER_LAUNCH

Это говорит che ск нужной ориентации запуска в info.plist, а затем реализовать этот метод делегата в AppDelegate переопределить поддерживаемые ориентации после запуска:

func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> UIInterfaceOrientationMask { 
    return .AllButUpsideDown 
} 
Смежные вопросы