获取iPhone状态栏高度
我需要调整一些与iPhone状态栏高度有关的元素。 我知道状态栏通常高20点,但在共享模式下情况并非如此。 它增加到40倍。确定确定它的高度的正确方法是什么? 我试过了
[[UIApplication sharedApplication] statusBarFrame]
但它给了我20×480的景观,这是正确的,但它会给我320×40的肖像。 为什么它不是给了我相反的(40×320)?
statusBarFrame返回屏幕坐标中的帧。 我相信正确的方式来获得这对应的视图坐标是做到以下几点:
- (CGRect)statusBarFrameViewRect:(UIView*)view
{
CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame];
CGRect statusBarWindowRect = [view.window convertRect:statusBarFrame fromWindow: nil];
CGRect statusBarViewRect = [view convertRect:statusBarWindowRect fromView: nil];
return statusBarViewRect;
}
现在在大多数情况下,窗口使用与屏幕相同的坐标,因此[UIWindow convertRect:fromWindow:]
不会改变任何内容,但如果它们可能不同,则此方法应该做正确的事情。
你是否这样做:
CGRect rect;
rect = [[UIApplication sharedApplication] statusBarFrame];
NSLog(@"Statusbar frame: %1.0f, %1.0f, %1.0f, %1.0f", rect.origin.x, rect.origin.y, rect.size.width, rect.size.height);
你可以测试哪个是两个值中较小的那个,这将是真正的高度。
链接地址: http://www.djcxy.com/p/42673.html