我制作了一个自定义 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);
事实证明,由于某种原因,状态栏是纵向 20,横向是 480
这是因为高度和宽度是转过来的,答案来自评论