如何设置导航栏颜色上 IOS 6/7
1个回答
展开全部
状态栏的字体为黑色:UIStatusBarStyleDefault状态栏的字体为白色:UIStatusBarStyleLightContentAPP启动页状态栏颜色设置在info.plist添加Statusbarstyle,改变style值,就可以改变颜色,默认是Graystyle一、在info.plist中,将Viewcontroller-basedstatusbarappearance设置为NO,白色,YES,黑色如果Viewcontroller-basedstatusbarappearance为YES。则[UIApplicationsharedApplication].statusBarStyle无效。解决个别VC中状态栏字体颜色不同的法二、在appdelegate中:[UIApplicationsharedApplication].statusBarStyle=UIStatusBarStyleLightContent;三、在个别状态栏字体颜色不一样的vc中-(void)viewWillAppear:(BOOL)animated{[UIApplicationsharedApplication].statusBarStyle=UIStatusBarStyleDefault;}-(void)viewWillDisappear:(BOOL)animated{[superviewWillDisappear:animated];[UIApplicationsharedApplication].statusBarStyle=UIStatusBarStyleLightContent;}用下面的方法:1、在vc中重写vc的preferredStatusBarStyle方法。-(UIStatusBarStyle)preferredStatusBarStyle{returnUIStatusBarStyleDefault;}2、在viewDidload中调用:[selfsetNeedsStatusBarAppearanceUpdate];但是,当vc在nav中时,上面方法没用,vc中的preferredStatusBarStyle方法根本不用被调用。原因是,[selfsetNeedsStatusBarAppearanceUpdate]发出后,只会调用navigationcontroller中的preferredStatusBarStyle方法,vc中的preferredStatusBarStyley方法跟本不会被调用。解决法有两个:方法一:设置navbar的barStyle属性会影响statusbar的字体和背景色。如下。//statusbar的字体为白色//导航栏的背景色是黑色。self.navigationController.navigationBar.barStyle=UIBarStyleBlack;//statusbar的字体为黑色//导航栏的背景色是白色,状态栏的背景色也是白色。//self.navigationController.navigationBar.barStyle=UIBarStyleDefault;方法二:自定义一个navbar的子类,在这个子类中重写preferredStatusBarStyle方法:MyNav*nav=[[MyNavalloc]initWithRootViewController:vc];self.window.rootViewController=nav;@implementationMyNav-(UIStatusBarStyle)preferredStatusBarStyle{UIViewController*topVC=self.topViewController;return[topVCpreferredStatusBarStyle];}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询