每当我正在通话时,绿色通话状态栏都会显示在导航栏的顶部。热点状态栏也是如此。
目前正在使用最新的swift
我猜我需要使用:
func application(_ application: UIApplication, didChangeStatusBarFrame oldStatusBarFrame: CGRect) {
}
我对我需要做的事情没有任何好运
答案 0 :(得分:2)
您在跟踪代理中的框架更改时走在正确的轨道上。
首先注册您的视图控制器(或任何类需要调整到状态栏框架更改)
//
// In some class that needs to update for status bar changes
//
NSNotificationCenter.defaultCenter().addObserver(
self,
selector: #selector(statusBarFrameWillChange:),
name: UIApplicationWillChangeStatusBarFrameNotification,
object: nil)
第二次,在您的app委托中,添加以下方法(类似于您的方法),以便在状态栏更改时调用
optional func application(_ application: UIApplication,
willChangeStatusBarFrame newStatusBarFrame: CGRect)
终于,在这里你可以简单地向系统发布一个通知,提醒所有听众观察这个变化,以便处理状态栏的框架变化:
func post(_ notification: Notification)
在您的观察者中,在发布通知时我选择调用的statusBarFrameWillChange
方法中,只需相对于状态栏框架向下或向上调整导航栏的框架。< / p>