在我正在开发的应用程序中,我很遗憾不得不使用iOS 6作为我的部署目标(iOS 7是我的基础SDK)。我有什么方法可以拥有UIStatusBar风格的Light Content吗?即使它只适用于iOS 7用户。
答案 0 :(得分:1)
在代码中指定UIStatusBarStyleLightContent
时,在iOS 6或更早版本下运行时,就像指定UIStatusBarStyleBlackTranslucent
一样。这两个枚举值都是相同的。
答案 1 :(得分:1)
这是UIStatusBarStyle的枚举:
typedef NS_ENUM(NSInteger, UIStatusBarStyle) {
UIStatusBarStyleDefault = 0, // Dark content, for use on light backgrounds
UIStatusBarStyleLightContent NS_ENUM_AVAILABLE_IOS(7_0) = 1, // Light content, for use on dark backgrounds
UIStatusBarStyleBlackTranslucent NS_ENUM_DEPRECATED_IOS(2_0, 7_0, "Use UIStatusBarStyleLightContent") = 1,
UIStatusBarStyleBlackOpaque NS_ENUM_DEPRECATED_IOS(2_0, 7_0, "Use UIStatusBarStyleLightContent") = 2,
};
我们可以从中看到UIStatusBarStyleLightContent
与UIStatusBarStyleBlackTranslucent
的值相同,因此如果使用其中任何一个,这些将是iOS 6和7上的相应行为。
如果您愿意,您可以使用代码来检测iOS版本,并在两者之间选择不同的值,以防您想要iOS 7上的轻量级内容样式,但在iOS 6上需要黑色不透明或默认值。
此外,现在有一个属性添加到名为UIViewControllerBasedStatusBarAppearance
的Info.plist中,这样就可以使用- (UIStatusBarStyle)preferredStatusBarStyle
方法根据UIViewController的首选项更改样式。因此,您只需在UIViewController
子类中使用您在特定位置所需的样式覆盖该方法。