如何在xcode中增加导航栏的高度?

我正在开发一个应用程序,其中我需要保留一个导航栏。 当我在酒吧上写任何标题的时候,时间和标题都非常接近。我想增加酒吧的高度,这样可以得到一些喘息的空间。

select你的ViewController – >select你的导航条 – > 提示 – >添加空间增加 **Navigation bar**height **Navigation bar**

检查图像在这里: 在这里输入图像说明

编程方式

将其添加到viewWillAppearviewDidAppear方法中

Objective-C的

 [self.navigationController.navigationBar setFrame:CGRectMake(0, 0, self.view.frame.size.width,80.0)]; 

迅速

 self.navigationController.navigationBar.frame = CGRectMake(0, 0, self.view.frame.size.width, 80.0) 

斯威夫特-3

 self.navigationController!.navigationBar.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 80.0) 

iOS 11

在这里输入图像说明

目标C

 for (UIView *subview in self.navigationController.navigationBar.subviews) { if ([NSStringFromClass([subview class]) containsString:@"BarBackground"]) { CGRect subViewFrame = subview.frame; // subViewFrame.origin.y = -20; subViewFrame.size.height = 100; [subview setFrame: subViewFrame]; } } 

迅速

 for subview in (self.navigationController?.navigationBar.subviews)! { if NSStringFromClass(subview.classForCoder).contains("BarBackground") { var subViewFrame: CGRect = subview.frame // subViewFrame.origin.y = -20; subViewFrame.size.height = 100 subview.frame = subViewFrame } } 

此解决scheme不再在XCODE 9.0中工作!

您还可以在不创build自定义导航的情况下增加高度,请遵循以下步骤

步骤1selectStoryboard或XIB中的导航栏

在这里输入图像说明

步骤2从Identity Inspector复制ObjectID

在这里输入图像说明

步骤3打开Storyboard / XIB作为源代码

在这里输入图像说明

步骤4在源代码中查找ObjectID过去在search中的ObjectID

在这里输入图像说明

第5步编辑高度! 就这样

在这里输入图像说明

我希望这能帮到您

将以下扩展添加到您的项目中:

 import UIKit extension UINavigationBar { override open func sizeThatFits(_ size: CGSize) -> CGSize { return CGSize(width: UIScreen.main.bounds.size.width, height: 80.0) } } 

这里请参考苹果推荐的扩展导航栏的方法,

https://developer.apple.com/library/content/samplecode/NavBar/Introduction/Intro.html

将其添加到viewWillAppear方法中

 CGFloat height = 80; [self.navigationController.navigationBar setFrame:CGRectMake(0, 0, self.view.frame.size.width,height)]; 

如果它先增加并缩小到原来的高度,然后在viewDidAppear方法中添加此代码

我们需要改变导航栏的高度,每次查看show.So代码viewWillAppear

 override func viewWillAppear(_ animated: Bool) { self.navigationController?.navigationBar.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: 80) } 

我们可以将宽度设置为视图的宽度,并根据需要更改高度。

我会隐藏导航栏,并自己实现一个自定义的。 这样,你可以完全按照你的想法来devise。

有一个简单的教程如何做到这一点: https : //www.codeschool.com/blog/2014/11/11/ios-app-creating-custom-nav-bar/

苹果build议不要调整navigationBar本身的大小,但从栏中删除阴影,并添加自定义视图在你的navigationBar 。 这可以适用于大多数情况。 检查苹果的样品。

如果我没有错,就不能更改默认NavigationBar的高度。

虽然,您可以创build一个自定义的NavigationBar并为其添加自定义高度。

如果你是

  • 使用故事板(你说你是)
  • 使用自动布局,和
  • 使用手动添加的导航栏(而不是导航控制器提供的导航栏)

那么你可以简单地在导航栏上设置一个高度约束。

xcode添加新的约束对话框