我想获得状态栏的高度。我正常使用
[UIApplication sharedApplication].statusBarFrame.size.height
但是,当我在模拟器中按CMD y时,出现呼叫状态栏,我的视图控制器将向下移动。
在顶部有任何功能以获取此通话状态栏的高度?
谢谢
根据苹果文档:
uiapplicationwillchangestatusbarframenotification
在应用程序时发布 即将改变状态栏的框架。
userInfo
字典包含一个封装CGRect
的NSValue
对象 表达新状态栏的位置和大小的结构 框架。使用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)
}