2013-09-25 2 views
3

Я сейчас обновляю приложение для iOS7 (при поддержке iOS6) и обновил строку состояния, чтобы использовать белый передний план, используя UIStatusBarStyle: UIStatusBarStyleLightContent.iOS версия специфичные настройки info.plist

Однако значение UIStatusBarStyleLightContent нового в iOS7, и поэтому при запуске на iOS6 UIStatusBarStyle возвращается к UIStatusBarStyleDefault, давая светло-серого цвета с темным текстом iOS6 по умолчанию. Но мне нужна моя версия iOS6, чтобы использовать строку состояния черного стиля UIStatusBarStyleBlackOpaque.

Учитывая, что вы можете установить параметры info.plist для разных типов устройств и платформ, например. UIStatusBarStyle~ipad: https://developer.apple.com/library/ios/DOCUMENTATION/iPhone/conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html

Я знаю, что может установить значение во время выполнения через UIApplication, но это не имеет не влияет, пока после того, как изображение отображается при запуске.

Я надеюсь, что вы можете использовать аналогичный механизм для версий iOS? например:

UIStatusBarStyle: UIStatusBarStyleBlackOpaque 
UIStatusBarStyle~ios7: UIStatusBarStyleLightContent 

Однако это не работает, и я не могу найти любую документацию яблока в любом месте на такую ​​особенность. Мне повезло и вам придется жить с уродливой белой статусной полосой во время запуска приложений iOS6?

EDIT: Просто нашел подобный вопрос здесь: iOS - Entry in Info.plist for only iOS 6 and above?

Похоже, ответ нет, это невозможно. Если в iOS7 не было никаких обновлений?

+0

вы понимаете, что ваша правка дает ссылку на этот же вопрос ?! Я думаю, вы снова нашли свой вопрос! – mattjgalloway

+0

@mattjgalloway hahaha, oops. должен скопировать неправильную ссылку. Исправлена. – Tyson

ответ

0

Используйте это, как я думаю, это будет полезно для вас,

if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) { 
    // Load resources for iOS 6.1 or earlier, i.e set status bar here for previous versions 
} else { 
    // Load resources for iOS 7 or later, set status bar here for ios 7 
} 
+0

Спасибо, но я знаю, что могу обновить его во время выполнения (и я уже делаю это на самом деле). Проблема в том, что это не влияет, пока приложение не запустится и после того, как было отображено изображение всплеска. Это приводит к тому, что он изменится с установки в info.plist на настройку во время выполнения. Мой вопрос касается специфических настроек iOS 'info.plist'. – Tyson

+0

На самом деле лучше, если вы скрываете строку состояния во время запуска (когда появляется экран всплеска), поместив «Строка состояния изначально скрытой» в YES в файле info.plist, а затем обновите строку состояния во время выполнения, потому что нет никакого поля в info.plist, чтобы решить указанную проблему. –

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