Fullscreen UIView with Status bar and Navigation Bar overlay on the top

Viewed 73923
6 Answers

Just set “wants fullscreen layout” in your view controller. That solves the problem for me.

self.wantsFullScreenLayout = YES;

In the screenshot above, there's a translucent status bar and a translucent navigation bar.

The status bar is set using

[[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleBlackTranslucent];

The navigation bar is set using

theNavigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;

The best way I came up was this: when using a "complex" hierarchy of Tab bar containing navigation controllers, with one "detail" view being a full screen view.

In the app delegate just before the tab bar controller's view is added to the window, I added this:

tabBarController.view.frame = [[UIScreen mainScreen] bounds];

This will make the tab bar controller cover the entire screen, even below the area of the status bar. I had to offset heights of several views to +20px, notably the navigation bars.

Set the statusbar style as black translucent and navigation bar style as black translucent. If you are using a navigation-based application, in the MainWindow.xib check the status bar is hidden and navigation bar is hidden checkboxes.

When the user touches the screen, start a timer to see if this was a single tap or double tap. If a single tap, make the statusbar and navbar hidden = NO. and once user activity stops, start a timer again. after some time of no activity, make them hidden again.

Related