获取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

上一篇: Get iPhone Status Bar Height

下一篇: Html Helper Extensions not being found