横屏结束后强制转为竖屏 导航栏和状态栏重叠及状态栏背景变白问题

2018-08-14  本文已影响19人  Alex陌

做好了好多天的音视频功能,今天自己用的时候偶然发现,横屏被挂断后 app的导航栏与状态栏UI重叠了,偶尔还出现未重叠但是 状态栏背景颜色变为白色的情况,这与app主体颜色相去甚远,虽然是小问题但是看起来非常不舒服。

问题①:横屏后导航栏与状态栏重叠

图1

经过查资料分析:是因为音视频横屏被挂断时(此时状态栏是隐藏的),虽然我有强制变为竖屏单数 app 尚未反应过来 状态栏高度还是0,此时做一个判断 

if navigationBar.top == 0 {

     navigationBar.top = self.view.safeAreaTop == 0 ? 20 : self.view.safeAreaTop    //注意iPhoneX 

}

问题②:状态栏背景颜色莫名其妙变成白色 (ps:原先为主题绿色)

图2

剖析原因:是因为重新调用了preferredStatusBarStyle 这个属性会改变背景颜色,设置完navigationBar.barTintColor 后需要通知状态栏更新

在系统调用完 preferredStatusBarStyle 属性后 设置背景颜色并更新状态栏

navigationBar.barTintColor = UIColor.green

setNeedsStatusBarAppearanceUpdate()

参考文章:https://www.jianshu.com/p/4008c08a2df2

上一篇下一篇

猜你喜欢

热点阅读