我正在开发一个应用程序,我需要保留一个导航栏。 当我在栏上写任何标题时,时间和标题有点非常接近。我想增加酒吧的高度,这样可以获得喘息的空间。
答案 0 :(得分:39)
选择 ViewController - >选择导航项 - > 提示 - >添加空间 增加 height
**Navigation bar**
<强>编程方式强>
在 viewWillAppear 或 viewDidAppear 方法
中添加此内容<强>目标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
}
}
答案 1 :(得分:14)
请参阅苹果推荐的扩展导航栏方法,
https://developer.apple.com/library/content/samplecode/NavBar/Introduction/Intro.html
答案 2 :(得分:11)
此解决方案在Xcode 8.x.x及更高版本中不再有效!
您也可以在不创建自定义导航的情况下增加高度,请按照以下步骤进行操作
步骤1在Storyboard或XIB中选择导航栏
步骤2从Identity Inspector复制ObjectID
步骤3打开Storyboard / XIB作为源代码
步骤4在源代码中查找ObjectID,超过搜索中的ObjectID
步骤5编辑高度!多数民众赞成
我希望这会对您有所帮助
答案 3 :(得分:10)
将以下扩展名添加到您的项目中:
import UIKit
extension UINavigationBar {
override open func sizeThatFits(_ size: CGSize) -> CGSize {
return CGSize(width: UIScreen.main.bounds.size.width, height: 80.0)
}
}
答案 4 :(得分:8)
在 viewWillAppear 方法
中添加此内容CGFloat height = 80;
[self.navigationController.navigationBar setFrame:CGRectMake(0, 0,
self.view.frame.size.width,height)];
如果它先增加并缩小到原始高度,则在 viewDidAppear 方法中添加此代码
答案 5 :(得分:8)
Apple proposes不要调整navigationBar
本身的大小,但要从栏中移除阴影并在navigationBar
下添加自定义视图。这适用于大多数情况。检查Apple的样品。
答案 6 :(得分:5)
只需将此行添加到您的 viewController
import copy
a = [{'a':1, 'b':2, 'c':3}, {'d':4, 'e':5, 'f':6}]
b = copy.deepcopy(d)
答案 7 :(得分:0)
如果我没错,你不能改变默认NavigationBar
的高度。
虽然,您可以创建自定义NavigationBar
并为其添加自定义高度。
答案 8 :(得分:0)
我们需要在每次视图显示时更改导航栏的高度。所以将代码放在viewWillAppear上
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.navigationBar.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: 80)
}
我们可以将宽度设置为视图的宽度,并根据需要更改高度。
答案 9 :(得分:0)
我会隐藏导航栏并自行实现自定义导航栏。这样你就可以按照自己的意愿设计它。
有一个关于如何做到这一点的简单教程: https://www.codeschool.com/blog/2014/11/11/ios-app-creating-custom-nav-bar/
答案 10 :(得分:-1)
[self.navigationController.navigationBar setPrefersLargeTitles:YES];
将以编程方式增加导航栏的高度
答案 11 :(得分:-2)