导航栏下的空白处

self.navigationController.navigationBar.translucent = NO ,导航栏下会出现一个空白区域,如下所示:

示例截图

我怎样才能删除它?

 // 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; } 

我会怎样解决这个问题,因为这很容易,而且运作良好。

在故事板中,select在不透明导航栏下获得空白的视图控制器。

然后进入“属性检查器” – >“视图控制器” – >“延长边缘” – > 选中“不透明条形图”

尝试

 self.automaticallyAdjustsScrollViewInsets = NO 

这是在iOS7中引入的,如果在调用之前没有检查系统版本,应用程序将会崩溃。 您还可以从情节提要“ Adjust Scroll View Insets

在这里输入图像说明

尝试

 self.wantsFullScreenLayout = YES; 

当您在半透明和不透明之间切换时,会发生问题。 我不知道为什么,但视图会自动resize。 当你从不透明切换到半透明时,视图在顶部展开。

我的猜测是,你可能设置在半透明的地方吧。 在xib文件或之前的代码中。

尝试添加一个0像素的图像作为导航栏的阴影

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