2017-02-24 73 views
4

由于UIApplication.shared.setStatusBarStyle(.default, animated: true)已从IOS9中弃用,是否可以更改状态栏样式动画push?我无法在文档中找到任何说明。用动画改变状态栏样式

+0

UIApplication.shared.statusBarStyle = .lightContent你有没有用这个 –

+0

这不会改变动画 – Danny

回答

6

它现在你要覆盖一个变量:

override var preferredStatusBarStyle: UIStatusBarStyle 
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation 

取决于当你更新状态栏上,你也可能会要求setNeedsStatusBarAppearanceUpdate()

+0

如果你想设置状态栏的风格吧它不是从UIViewController的 – Danny

+0

叫什么名字? –

+0

in viewWillAppear – Danny

3

如果你想设置状态栏样式,应用然后在.plist文件中将UIViewControllerBasedStatusBarAppearance设置为NO

,如果你婉设置状态栏样式,在视图控制器的水平,那么请按照下列步骤操作:

  1. .plist文件中设置UIViewControllerBasedStatusBarAppearanceYES,如果你需要在只的UIViewController级别设置状态栏样式。
  2. 在viewDidLoad中添加功能 - setNeedsStatusBarAppearanceUpdate

  3. 覆盖preferredStatusBarStyle在您的视图控制器。

-

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.setNeedsStatusBarAppearanceUpdate() 
} 

override var preferredStatusBarStyle: UIStatusBarStyle { 
    return .lightContent 
} 

集的.plist根据状态栏样式设置电平值。 enter image description here

+0

它没有从UIViewController调用 – Danny