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

问题描述 投票:0回答:2

我想得到状态栏的高度。这个我正常使用

[UIApplication sharedApplication].statusBarFrame.size.height

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

是否有像顶部的功能来获得此呼叫状态栏的高度?

谢谢

ios objective-c statusbar
2个回答
1
投票

根据Apple文档:

UIApplicationWillChangeStatusBarFrameNotification

当应用程序即将更改状态栏的框架时发布。 userInfo字典包含一个NSValue对象,它封装了一个CGRect结构,表示新状态栏框架的位置和大小。使用UIApplicationStatusBarFrameUserInfoKey访问此值。

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


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)
}
© www.soinside.com 2019 - 2024. All rights reserved.