2013-09-25 51 views
3

我正在更新iOS7应用程序(同时仍支持iOS6),并更新状态栏以使用UIStatusBarStyle: UIStatusBarStyleLightContent使用白色前景。iOS版本特定info.plist设置

然而UIStatusBarStyleLightContent值iOS7是新的,所以当在iOS6的运行UIStatusBarStyle恢复到UIStatusBarStyleDefault,给人的浅灰色与黑色文本iOS6的默认。但我需要我的iOS6版本才能使用黑色风格UIStatusBarStyleBlackOpaque状态栏。

由于您可以为不同的设备和平台类型设置info.plist设置,例如, UIStatusBarStyle~ipadhttps://developer.apple.com/library/ios/DOCUMENTATION/iPhone/conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html

我知道我可以通过UIApplication在运行时设置的值,但是这并没有直到开机画面显示有后的影响。

我希望你可以使用类似的机制的iOS版本?例如:

UIStatusBarStyle: UIStatusBarStyleBlackOpaque 
UIStatusBarStyle~ios7: UIStatusBarStyleLightContent 

但是,这不起作用,我无法找到这样的功能任何地方的任何苹果文档。我运气不好,在iOS6应用程序启动期间,我将不得不忍受丑陋的白色状态栏?

编辑:刚刚发现了类似的问题在这里:iOS - Entry in Info.plist for only iOS 6 and above?

好像答案是否定的,这是不可能的。除非iOS7有任何更新?

+0

你实现你的编辑给出了一个链接回到这个同样的问题?我想你重新找到你自己的问题! – mattjgalloway

+0

@mattjgalloway haha​​ha,哎呀。必须复制错误的链接。固定。 – 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

如果您在启动时(隐藏状态栏出现时)隐藏状态栏,将info.plist中的“状态栏最初隐藏”设置为YES,然后在运行时更新状态栏会更好,因为没有任何字段在info.plist中执行您指定的问题 –

相关问题