繁体   English   中英

如何更改 UINavigationBar 的高度

[英]how do I change the UINavigationBar's height

这个问题困扰了我一天多。 我需要修改 UINavigationBar 的高度。

UINavigationController 像这样在 AppDelegate 中创建。

self.navigationController = [[UINavigationController alloc] initWithRootViewController:mainController];
[self.window addSubview:self.navigationController.view];
[self.window makeKeyAndVisible];

如果我将 [self.navigationController.navigationBar setFrame:newFrame] 添加到viewDidAppear中,导航栏的高度将会改变并保持不变,如下面的代码。

- (void)viewWilAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    CGRect newFrame = CGRectMake(0, 0, 320, 100);
    [self.navigationController.navigationBar setFrame:newFrame]
}

但是,如果我这样做,您实际上可以在视图加载的瞬间看到帧从原始 44px 捕捉到 100px 高度,这非常烦人。

在我启动 UINavigationController 之后,我尝试将 [navBar setFrame:] 添加到 rootViewController 的viewDidloadviewWillAppear和 AppDelegate 中。 这些都不起作用。

正如你所知,我已经使用下面的代码覆盖了 UINavigationBar 类别中的 drawRect:(CGRect)rect 方法,以使背景颜色为纯黑色,但我认为这与问题无关。

[[UIColor blackColor] set];
CGContextFillRect(UIGraphicsGetCurrentContext(), rect);

有谁知道做到这一点的最佳方法?

“如果您需要提供更大的控件集,或者您不需要启用导航,请使用工具栏而不是导航栏。” - 来自导航栏/指南下的iOS 人机界面指南。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM