我制作了一个自定义 toast 库(非常简单,只是一个出现在导航栏下方的框)。这在我的目标群体 iOS 6 中运行良好。但由于 iOS 7 已发布,它无法正确显示。
我试图修复它的方法是通过这段代码:
if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7,0")){
self.offset = [UIApplication sharedApplication].statusBarFrame.size.height + self.viewController.navigationController.navigationBar.frame.size.height;
}
我做了一个可以在Stack overflow上找到的宏来检测iOS版本是否为7,然后添加状态栏高度和导航高度。这在 iOS 7 的纵向模式下工作正常,但当我切换到横向时偏移量变为 512?
谁能解释这是怎么发生的以及我该如何解决这个问题?
决定拆分代码作为评论,看看究竟是什么导致了差异。我所做的是:
CGFloat statusBarHeight =[UIApplication sharedApplication].statusBarFrame.size.height;
CGFloat navBar = self.viewController.navigationController.navigationBar.frame.size.height;
self.offset = statusBarHeight + navBar;
NSLog(@"Init - statusBarHeight: %f, navBar: %f", statusBarHeight, navBar);
由于某些原因,statusbar 纵向为 20,横向为 480
这是因为高宽调反了,答案来自评论
最佳答案
因为我之前做过同样的“修复”,所以我注意到在风景中
[UIApplication sharedApplication].statusBarFrame.size.width
和
[UIApplication sharedApplication].statusBarFrame.size.height
值被切换。
关于ios - 如何修复 iOS 7 状态栏的高度和宽度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19534644/