更改启animation面iOS 7中的状态栏文字颜色
我知道已经有一些stackoverflow的 问题 ,说如何改变所有视图控制器的状态栏。 我目前正在改变状态栏的颜色:
if(IS_IOS7) [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
在application:DidFinishLaunching
另外,我已经将plist中UIViewControllerBasedStatusBarAppearance
的值更改为NO。 但是,在闪屏中,它仍然显示黑色的状态栏文本。
是否可以更改闪屏中状态栏文本颜色的颜色?
在项目plist文件中添加“状态栏样式”属性(键是UIStatusBarStyle
)。 然后忽略此属性的下拉列表中列出的所有可能的值,然后inputUIStatusBarStyleLightContent
。
你不必在你的plist中设置UIViewControllerBasedStatusBarAppearance
为NO
,你可以设置你想要的视图控制器的preferredStatusBarStyle
。
你可以在不写任何代码的情况下做到这一点
通过整个应用程序执行以下操作使状态栏文本颜色变为白色
对你项目plist文件:
- 状态栏样式:
UIStatusBarStyleLightContent
- 查看基于控制器的状态栏外观:
NO
- 状态栏最初是隐藏的:
NO
在整个应用程序中,您可以执行以下操作来获取浅色状态栏。
- 在项目导航器中select项目的名称。
- 从项目编辑器左侧列表中select一个目标的名称。
- 点击项目编辑器顶部的常规。
- 设置状态栏样式 – >轻
在你的plist文件中添加下列值:
- 状态栏样式 – UIStatusBarStyleLightContent
- 查看基于控制器的状态栏外观 – NO
这将帮助您在整个应用程序(包括SPLASH SCREEN)中以白色显示状态栏。
在plist中将UIViewControllerBasedStatusBarAppearance
设置为No
然后在完成启动选项中添加以下代码
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { [application setStatusBarStyle:UIStatusBarStyleLightContent]; self.window.clipsToBounds =YES; self.window.frame = CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20); }
请按照这个代码为我工作
在整个应用程序中,您可以执行以下操作来获取浅色状态栏。
在项目导航器中select项目的名称。 从项目编辑器左侧列表中select一个目标的名称。 点击项目编辑器顶部的常规。 设置状态栏样式 – >轻
这里是关于状态栏变化的Apple指南/说明 。
这里是 – 如何改变状态栏的风格:
如果你想设置状态栏风格,应用程序级别,然后在你的`.plist'文件中设置UIViewControllerBasedStatusBarAppearance
为NO
。
如果你想设置状态栏的风格,在视图控制器级别,然后按照下列步骤:
- 如果您只需要在UIViewController级别设置状态栏样式,请将
.plist
文件中的UIViewControllerBasedStatusBarAppearance
设置为YES
。 -
在viewDidLoad添加函数 –
setNeedsStatusBarAppearanceUpdate
-
在视图控制器中覆盖preferredStatusBarStyle。
–
override func viewDidLoad() { super.viewDidLoad() self.setNeedsStatusBarAppearanceUpdate() } override var preferredStatusBarStyle: UIStatusBarStyle { return .lightContent }
根据状态栏风格设置级别设置.plist的值。
您可以在应用程序启动期间或视图控制器的viewDidLoad期间为状态栏设置背景颜色。
extension UIApplication { var statusBarView: UIView? { return value(forKey: "statusBar") as? UIView } } // Set upon application launch, if you've application based status bar class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { UIApplication.shared.statusBarView?.backgroundColor = UIColor.red return true } } or // Set it from your view controller if you've view controller based statusbar class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() UIApplication.shared.statusBarView?.backgroundColor = UIColor.red } }
结果如下: