我想获得状态栏的高度。我通常使用
[UIApplication sharedApplication].statusBarFrame.size.height
但是当我在模拟器中按下Cmd + Y时,会出现呼叫状态栏,我的视图控制器将向下移动。
顶部是否有任何功能可以获得此通话状态栏的高度?
谢谢
答案 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)
}