iOS 8 – 设置状态栏颜色(当你的UINavigationBar没有背景图像时)
我在我的应用程序(特别是ICViewPager)中使用查看传呼机。 为了使查看传呼机混合到像这样的导航栏:
我不得不把这些代码行放在我的AppDelegate.m
[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault]; [[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
但是,这会导致状态栏与我的导航栏不一样。
如何将我的状态栏的颜色设置为与我的导航栏相同?
如何将我的状态栏的颜色设置为与我的导航栏相同?
你没有。 状态栏没有颜色 。 它是透明的。 这是你的工作,使一些看法,以期望的颜色延伸到视图的顶部, 在状态栏后面 ,以便该颜色显示。
这个视图可以是你的窗口,或者视图控制器的主视图。 现在,它是白色的,所以我们看到通过导航栏上方显示的白色。 如果你给你的窗口(或主视图,或任何白色的东西,我们正在看)与导航栏相同的颜色,你会得到你想要的效果。
或者,您可以调整导航栏本身的大小和位置,使其到达窗口顶部并覆盖它。
override func viewWillAppear(animated: Bool) { //Status bar style and visibility UIApplication.sharedApplication().statusBarStyle = .LightContent //Change status bar color let statusBar: UIView = UIApplication.sharedApplication().valueForKey("statusBar") as! UIView if statusBar.respondsToSelector(Selector("setBackgroundColor:")) { statusBar.backgroundColor = customRed } }
干得好
你可以改变状态栏的风格
typedef enum : NSInteger { UIStatusBarStyleDefault, UIStatusBarStyleLightContent, UIStatusBarStyleBlackTranslucent, UIStatusBarStyleBlackOpaque } UIStatusBarStyle; // @implementation ViewController - (UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleLightContent; } @end