我想得到状态栏的高度。这个我正常使用
[UIApplication sharedApplication].statusBarFrame.size.height
但是当我在模拟器中按下Cmd + Y时,会出现呼叫状态栏,我的视图控制器将向下移动。
是否有像顶部的功能来获得此呼叫状态栏的高度?
谢谢
根据Apple文档:
UIApplicationWillChangeStatusBarFrameNotification
当应用程序即将更改状态栏的框架时发布。
userInfo
字典包含一个NSValue
对象,它封装了一个CGRect
结构,表示新状态栏框架的位置和大小。使用UIApplicationStatusBarFrameUserInfoKey
访问此值。
在访问状态栏新框架的CGRect后,您可以计算出“调用状态栏”的高度,该高度等于{frame of status bar}.origin.y
。
// 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)
}