Mig*_*eno 4 iphone objective-c statusbar ios
在最初为以前版本设计的iOS7中运行应用程序时,深灰色导航栏会调整其文本为黑色的状态栏.
我正在尝试将其改编为最新版本,我将UIApplication.statusBarStyle设置为UIStatusBarStyleLightContent,如下所示:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
Run Code Online (Sandbox Code Playgroud)
这段代码应该将状态栏文本颜色更改为白色,但不会.我在我的UIApplication实例的_statusBarRequestedStyle属性中放置了一个观察点,我可以通过执行viewWillAppear和viewDidAppear方法之间的UIApplicationMain调用将其设置为0(UIStatusBarStyleDefault).
我无法弄清楚状态栏样式在这一点上有什么/为什么会改变,如果您有相同的经验,我将不胜感激.
提前致谢!
编辑:来自iOS 7 UI过渡指南(https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/Bars.html)
在iOS 7中,您可以从单个视图控制器控制状态栏的样式,并在应用程序运行时进行更改.如果您希望选择不使用此行为并使用UIApplication statusBarStyle方法设置状态栏样式,请将UIViewControllerBasedStatusBarAppearance键添加到应用程序的Info.plist文件中,并为其赋值NO.
选项1:
1)如果您的应用程序是基于View控制器,那么您必须将其设置为app.plist文件,如下所示:
UIViewControllerBasedStatusBarAppearance=NO;
Run Code Online (Sandbox Code Playgroud)

2)你必须在每个控制器中设置此方法:
-(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
Run Code Online (Sandbox Code Playgroud)
选项2:
在应用程序didFinishLaunchingWithOptions:方法的AppDelegate.m文件中写下这一行
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
Run Code Online (Sandbox Code Playgroud)
可能会有所帮助.
我想会发生的是系统根据视图控制器状态栏外观更新状态栏.这是iOS7的新行为,默认情况下处于启用状态.
如果你想使用的状态栏外观上一API,你应该设置UIViewControllerBasedStatusBarAppearance到NO您的应用程序的Info.plist.
| 归档时间: |
|
| 查看次数: |
829 次 |
| 最近记录: |