这个问题已经让我瘫痪了一天多。我需要修改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]
}
HOWEVER ,如果我这样做,你实际上可以看到框架从原始的44px捕捉到视图加载的瞬间的100px高度,这非常烦人。
我尝试在启动UINavigationController后立即将[navBar setFrame:]添加到rootViewController的 viewDidload , viewWillAppear 以及AppDelegate。这些都不起作用。
您知道,我已经覆盖了UINavigationBar类别中的drawRect:(CGRect)rect方法,使用下面的代码使背景颜色变为黑色,但我认为这与问题无关。
[[UIColor blackColor] set];
CGContextFillRect(UIGraphicsGetCurrentContext(), rect);
有谁知道最好的方法吗?
答案 0 :(得分:1)
“如果您需要提供更多控件,或者您不需要启用导航,请使用工具栏而不是导航栏。” - 来自导航栏/指南下的iOS Human Interface Guidelines。