[英]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 的viewDidload 、 viewWillAppear和 AppDelegate 中。 这些都不起作用。
正如你所知,我已经使用下面的代码覆盖了 UINavigationBar 类别中的 drawRect:(CGRect)rect 方法,以使背景颜色为纯黑色,但我认为这与问题无关。
[[UIColor blackColor] set];
CGContextFillRect(UIGraphicsGetCurrentContext(), rect);
有谁知道做到这一点的最佳方法?
“如果您需要提供更大的控件集,或者您不需要启用导航,请使用工具栏而不是导航栏。” - 来自导航栏/指南下的iOS 人机界面指南。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.