前言
最近项目有需求,需要在状态栏,导航栏透明的情况下状态栏文字颜色为白色。系统默认是黑色。看了几篇文章,说的都是启动的时候,在顶部的时候。很多都没有说到点子上。我们需要每个页面可以控制,甚至根据根据页面的偏移量控制。
修改方法
注意下面我说的前提是使用系统导航栏的情况下,请勿死板硬套。
首先在Info.plist文件中添加View controller-based status bar appearance键值对,bool类型,设置成NO。
在需要修改的页面中的-(void)viewWillAppear:(BOOL)animated 方法中加入 [UIApplication sharedApplication].statusBarStyle=UIStatusBarStyleLightContent;(白色情况)。在- (void)viewWillDisappear:(BOOL)animated方法中 中加入 [UIApplication sharedApplication].statusBarStyle=UIStatusBarStyleDefault;(默认黑色)。
这样当进入此页面时。状态栏文字颜色为白色。离开时为默认黑色。
如果该界面可滑动可在- (void)scrollViewDidScroll:(UIScrollView *)scrollView 代理方法中根据偏移量更改状态栏文字颜色。
文章参考
(ios 状态栏statusBar的背景颜色)这个文章还好,就是少了对Info.plist的设置。