iOS日常须知

iOS动态修改statusBarStyle

2018-04-10  本文已影响204人  琴月阳

A. View controller-based status bar appearance,字面意思很好理解,默认为NO,通过UIApplication.shared.statusBarStyle = .lightContent来修改statusBarStyle;


B. View controller-based status bar appearance为YES时,通过重写preferredStatusBarStyle修改statusBarStyle,由于preferredStatusBarStyle是只读的,所以如果要根据业务逻辑动态修改statusBarSty le的话需要显式的调用setNeedsStatusBarAppearanceUpdate()方法,让系统再去读取一次更改后的preferredStatusBarStyle;


注意:如果当前viewcontroller是navigationController的childViewController,通过重写preferredStatusBarStyle是不能修改statusBarStyle的,解决办法是要么重写UINavigationController的childForStatusBarStyle和childForStatusBarHidden(当导航栏隐藏时只需重写前者),返回visibleViewController;要么使用方法a。

上一篇下一篇

猜你喜欢

热点阅读