Mert Karabulut
Mert Karabulut

Reputation: 63

White space under the navigation bar

When self.navigationController.navigationBar.translucent = NO, a white space occur under the navigation bar, like this:

Sample screenshot

How can I remove it?

// From above example
(void)loadUI
{
    [self.countriesButton setBackgroundColor:[UIColor colorWithRed:(243/255.0) green:(178/255.0) blue:(128/255.0) alpha:1]];
    [self.countriesButton.layer setCornerRadius:10];
    [self.countriesButton setClipsToBounds:YES];

    /// set attributes for Navigation Bar
    self.navigationItem.title = @"Welcome"; // Title of Navigation Bar
    self.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:(243/255.0) green:(178/255.0) blue:(128/255.0) alpha:1];
    self.navigationController.navigationBar.tintColor = [UIColor whiteColor];
    self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName : [UIColor whiteColor]};
    self.navigationController.navigationBar.translucent = NO;
}

Upvotes: 2

Views: 4134

Answers (5)

David
David

Reputation: 81

Im gonna chime in how i solved this one since it was easy and worked well.

In your storyboard select the view controller that is getting the whitespace under the opaque navbar.

Then go to 'Attributes Inspector' -> 'View Controller' -> 'Extend Edges' -> Check the box that says 'Under Opaque Bars'

Upvotes: 8

XeNoN
XeNoN

Reputation: 696

Try with

self.automaticallyAdjustsScrollViewInsets = NO

This is introduced in iOS7 and app will crash if you don't check system version before calling. You can also set this from storyboard 'Adjust Scroll View Insets'

enter image description here

Upvotes: 2

streem
streem

Reputation: 9144

The problem happens when you switch between translucent and opaque. I don't really know why, but the view is automatically resized. It is the same when you switch from opaque to translucent, the view expands at the top.

My guess is that you are probably setting somewhere else the bar as translucent. In the xib file or previously in the code.

Upvotes: 0

Shubhank
Shubhank

Reputation: 21805

try adding a 0 px image as shadow of navbar

[self.navigationController.navigationBar setShadowImage:[UIImage new]];

Upvotes: -1

Nithin M Keloth
Nithin M Keloth

Reputation: 1595

Try

self.wantsFullScreenLayout = YES;

Upvotes: 0

Related Questions