0

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

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

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

另外,有人知道导航栏的默认高度吗?

谢谢!

4

2 回答 2

5

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

我不确定您是否应该尝试直接调整导航栏的大小,文档当然不鼓励这样做:

当与导航控制器一起使用时,您只能对导航栏进行少量直接自定义。具体来说,可以修改这个类的barStyle、tintColor、translucent属性,但是千万不能直接修改frame、bounds、alpha、hidden等UIView级别的属性。

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

于 2010-03-13T22:30:58.867 回答
3

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

于 2010-03-13T22:30:45.433 回答