具有呼叫通知的状态栏的高度

时间:2014-01-31 11:57:39

标签: ios objective-c statusbar

我想获得状态栏的高度。我通常使用

[UIApplication sharedApplication].statusBarFrame.size.height

但是当我在模拟器中按下Cmd + Y时,会出现呼叫状态栏,我的视图控制器将向下移动。

顶部是否有任何功能可以获得此通话状态栏的高度?

谢谢

2 个答案:

答案 0 :(得分:1)

根据Apple文档:

  

UIApplicationWillChangeStatusBarFrameNotification

     

在应用时发布   即将改变状态栏的框架。 userInfo   dictionary包含一个NSValue对象,封装了CGRect   结构表示新状态栏的位置和大小   帧。使用UIApplicationStatusBarFrameUserInfoKey进行访问   值。

在您访问状态栏的新框架的CGRect后,您可以计算出“呼叫状态栏”的高度,该高度等于{frame of status bar}.origin.y

答案 1 :(得分:0)

// ObjC
- (void) application:(UIApplication *)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame
{
    NSLog(@"Status bar height %f", CGRectGetHeight(newStatusBarFrame));
}

// Swift
func application(_ application: UIApplication, willChangeStatusBarFrame newStatusBarFrame: CGRect) {
      print(newStatusBarFrame)
}