【发布时间】:2013-11-01 07:31:32
【问题描述】:
我已经制作了一个自定义的 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
这是因为高度和宽度调转了,答案来自评论
【问题讨论】:
-
我的猜测是横向 [UIApplication sharedApplication].statusBarFrame.size.width 和 [UIApplication sharedApplication].statusBarFrame.size.height 值被切换
-
这是真的,谢谢,如果你能发布你的答案我可以接受它
标签: ios objective-c ios7 statusbar