Ios 为什么UIApplicationIDChangeStatusBarFrame';当iphone热点打开时,用户信息不正确?

Ios 为什么UIApplicationIDChangeStatusBarFrame';当iphone热点打开时,用户信息不正确?,ios,sdk,notifications,uikit,Ios,Sdk,Notifications,Uikit,我在视图控制器中添加了下拉菜单。当它出现时,我把它放在我的超级视图前面。如果我打开hotspot,iphone的状态栏将加倍高,我应该更改下拉菜单的原点,因此我添加了通知以观察UIApplicationIDChangeStatusBarFrame和UIApplicationWillChangeStatusBarFrame 如果我改变屏幕方向,它将为我提供如下正确的用户信息: ***WILL CHANGE STATUS BAR*** StatusBar size: (0.0, 0.0, 736.0

我在视图控制器中添加了下拉菜单。当它出现时,我把它放在我的超级视图前面。如果我打开hotspot,iphone的状态栏将加倍高,我应该更改下拉菜单的原点,因此我添加了通知以观察
UIApplicationIDChangeStatusBarFrame
UIApplicationWillChangeStatusBarFrame

如果我改变屏幕方向,它将为我提供如下正确的用户信息:

***WILL CHANGE STATUS BAR***
StatusBar size: (0.0, 0.0, 736.0, 20.0)
***WILL CHANGE STATUS BAR***
StatusBar size: (0.0, 0.0, 736.0, 20.0)
***DID CHANGE STATUS BAR***
StatusBar size: (0.0, 0.0, 414.0, 20.0)
REAL Statusbar height: 20.0
***DID CHANGE STATUS BAR***
StatusBar size: (0.0, 0.0, 0.0, 0.0)
REAL Statusbar height: 0.0
使用的功能:

  func didChangeStatusBar(_ notification: Notification) {
    print("***DID CHANGE STATUS BAR***")
    let infoDict = notification.userInfo as! [String: Any]
    let statusBarSize = (infoDict[UIApplicationStatusBarFrameUserInfoKey] as! NSValue).cgRectValue
    print("StatusBar size: \(statusBarSize)")
    print("REAL Statusbar height: \(UIApplication.shared.statusBarFrame.height)")

    let realHeight = UIApplication.shared.statusBarFrame.height
}

  func willChangeStatusBar(_ notification: Notification) {
    print("***WILL CHANGE STATUS BAR***")
    let infoDict = notification.userInfo as! [String: Any]
    let statusBarSize = (infoDict[UIApplicationStatusBarFrameUserInfoKey] as! NSValue).cgRectValue
    print("StatusBar size: \(statusBarSize)")
  }
我也不知道为什么叫两次。 现在我打开iphone上的hotspot并使用另一个hotspot进行连接,状态栏的高度将翻倍。输出为:

***WILL CHANGE STATUS BAR***
StatusBar size: (0.0, 0.0, 414.0, 40.0)
***DID CHANGE STATUS BAR***
StatusBar size: (0.0, 0.0, 414.0, 20.0)
REAL Statusbar height: 40.0
你们看到了吗,那个用户信息给我们的状态栏高度值等于20,但实际高度是40。所以我不能依靠这个值来安排我的观点。是虫子还是我误解了什么