如何更改导航栏高度

时间:2016-01-06 12:33:21

标签: ios objective-c

我看到了一个改变导航栏高度的解决方案。但没有什么对我有用。现在我的应用程序有一个与导航控制器连接的视图控制器。我还没有在我的项目中实现任何其他代码。在开始我的项目之前,我需要更改导航栏的高度。

编辑:

·H:

- (CGSize)sizeThatFits:(CGSize)size ;

的.m:

@implementation UINavigationBar (customNav)
- (CGSize)sizeThatFits:(CGSize)size {
    CGSize newSize = CGSizeMake(370,40);
    return newSize;
}
@end

3 个答案:

答案 0 :(得分:2)

UIView *NavView = [[UIView alloc] initWithFrame:CGRectMake(0, 0 , [UIScreen mainScreen].bounds.size.width , 44)];
NavView.backgroundColor = [UIColor clearColor];
NavView.userInteractionEnabled = YES;
[self.navigationController.navigationBar addSubview:NavView];

UIButton *DateBtn = [[UIButton alloc]initWithFrame:CGRectMake(0, 10, 90, 30)];
DateBtn.backgroundColor = [UIColor clearColor];
[DateBtn setTitle:@"Jan 05" forState:UIControlStateNormal];
DateBtn.titleLabel.font = [UIFont fontWithName:BrushScriptStd size:18];
[DateBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[NavView addSubview:DateBtn];

答案 1 :(得分:0)

您无法更改UINavigation高度,但可以在UINavigation栏上添加自定义视图

答案 2 :(得分:0)

这个问题的简单解决方案是你可以从StoryBoard或Code中创建view

将视图添加到viewController。

您必须从项目中禁用默认导航栏。你也可以通过Storyboard来做到这一点。选择导航栏并将状态栏更改为无:

enter image description here

如果你想通过代码,那么在你的didFinishLaunching代码中

UIStoryboard *tStoryBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    RootVC* RootVCObj = [tStoryBoard instantiateViewControllerWithIdentifier:@"RootVC"];

    UINavigationController *navC = [[UINavigationController alloc] initWithRootViewController:RootVCObj];
    navC.navigationBarHidden = YES;

之后,在视图中添加尽可能多的按钮

  

这方面的主要缺点是您必须为您当前拥有的所有屏幕制作自定义视图