Search code examples
iphoneuiviewcontrollerautoresizingmask

How to get the applicationFrame minus the height of the UINavigationBar?


I put this in loadView and it works:

CGRect navFrame = [[UIScreen mainScreen] applicationFrame];
navFrame.size.height -= self.navigationController.navigationBar.frame.size.height;
UIImageView *imageView = [[UIImageView alloc] initWithFrame:navFrame];

But is there a variable like applicationFrame that gives the applicationFrame minus the UINavigationBar height?


Solution

  • Looks like there isn't since three20 does something similar to what I did. In TTGlobalNavigatorMetrics.m, they do:

    CGRect TTNavigationFrame() {
      CGRect frame = [UIScreen mainScreen].applicationFrame;
      return CGRectMake(0, 0, frame.size.width, frame.size.height - TTToolbarHeight());
    }
    

    http://github.com/facebook/three20/blob/master/src/Three20UINavigator/Sources/TTGlobalNavigatorMetrics.m#L53

    Matt