在哪里可以更改iPhone应用程序导航栏的高度?

时间:2010-03-13 22:10:29

标签: 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)];
...
}

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

此外,任何人都知道navigationBar的默认高度?

谢谢!

2 个答案:

答案 0 :(得分:5)

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

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

  

与a一起使用时   导航控制器,只有   一些直接定制你   可以进入导航栏。   具体来说,修改是可以的   barStyle,tintColor和   这个类的半透明属性,   但你绝不能直接改变   UIView级别的属性如   框架,边界,alpha或隐藏   物业直接。

根据您的尝试,可能更容易在导航栏上方/下方放置新的UIView。

答案 1 :(得分:3)

导航栏的默认高度为44像素。 如果要更改它,请尝试向UINavigationBar添加类别并覆盖setFrame:method。