iOS 版本特定 info.plist 设置

Posted

技术标签:

【中文标题】iOS 版本特定 info.plist 设置【英文标题】:iOS version specific info.plist settings 【发布时间】:2013-09-25 06:58:18 【问题描述】:

我正在更新适用于 ios7 的应用程序(同时仍支持 iOS6),并已使用 UIStatusBarStyle: UIStatusBarStyleLightContent 更新状态栏以使用白色前景。

但是 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 应用启动期间将不得不忍受丑陋的白色状态栏?

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

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

【问题讨论】:

您意识到您的编辑提供了指向同一问题的链接?!我认为您重新找到了自己的问题! @mattjgalloway 哈哈哈,哎呀。必须复制错误的链接。固定。 【参考方案1】:

使用这个,我想对你有帮助,

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 

【讨论】:

谢谢,但我知道我可以在运行时更新它(实际上我已经在这样做了)。问题是,直到应用程序启动和显示初始图像之后,这才会产生影响。这会导致它从 info.plist 中的设置更改为运行时的设置。我的问题专门针对 iOS 特定的info.plist 设置。 在启动时(出现闪屏时)隐藏状态栏实际上更好,方法是在 info.plist 中将“状态栏最初隐藏”设置为 YES,然后在运行时更新状态栏, 因为 info.plist 中没有任何字段可以做你指定的问题

以上是关于iOS 版本特定 info.plist 设置的主要内容,如果未能解决你的问题,请参考以下文章

如何本地化iOS info.plist文件中的字符串?

如何在 info.plist 文件中为特定游戏关卡中保存的颜色设置创建条目?

为 iOS 使用描述 Info.plist 键设置空字符串

为 iOS 使用描述 Info.plist 键设置空字符串

iOS9https设置info.plist

Xamarin.iOS 信息,plist 不起作用