我在哪里更改iPhone应用程序的navigationBar的高度?

Ton*_*ony 0 iphone uinavigationcontroller navigationbar

在我的applicationDidFinishLaunching中,我设置了一个UINavigationController:

- (void)applicationDidFinishLaunching:(UIApplication *)application { 
    navController = [[UINavigationController alloc] init];
    [[navController navigationBar] setFrame:CGRectMake(0.0,0.0,320.0,20.0)];
...
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我正在尝试使导航控制器的高度为20px.但是,这不起作用.我认为setFrame必须是正确的函数,但我没有在正确的位置调用它.我意识到关于SO的其他问题与我的相似,但我认为如果它响应setFrame,设置navigationBar高度应该是正确的......对吗?

还有,谁知道navigationBar的默认高度?

谢谢!

kha*_*son 5

导航栏的默认高度为44px.

我不确定您是否应该尝试直接调整导航栏的大小,文档肯定不鼓励它:

与导航控制器一起使用时,只能对导航栏进行少量直接自定义.具体来说,修改此类的barStyle,tintColor和半透明属性是可以的,但是您不能直接直接更改UIView级属性,例如frame,bounds,alpha或hidden属性.

根据您要执行的操作,可能更容易在导航栏上方/下方放置新的UIView.