0

我使用 UINavigationController 的典型情况,我想让导航栏更高一点。设置它的边界和框架似乎没有什么区别,我使用这个代码

    //set up the navigation
UINavigationController *navigationController = [UINavigationController new];

[navigationController.navigationBar setBarStyle:UIBarStyleBlack];
[navigationController.navigationBar setTintColor:[UIColor purpleColor]];
[navigationController.navigationBar setBounds:CGRectMake(0.0, 0.0, 480.0, 100.0)];
[navigationController.navigationBar setFrame:CGRectMake(0.0, 0.0, 480.0, 100.0)];

但无济于事。有任何想法吗?

4

3 回答 3

2

我不认为你可以改变导航栏的高度。除非您添加提示消息...但这不是您想要的。

框架是视图的可见区域。Bounds 是内部区域。通常它的原点为 (0, 0) 并且与框架一样宽和高。但是,当内容超出可见区域时(如 UIScrollView),边界可能会更大(并且来源不同)。您很少看到小于其各自框架的边界。

编辑:看看你的代码,[UINavigationController new] 是关于什么的?你应该做[[UINavigationController alloc] init],不是吗?

此外,您所做的并不是真正的子类化......

于 2009-09-06T13:10:51.417 回答
1

在 2009 年的时候,可能没有办法改变 UINavigationController 的高度。但是,在 iOS SDK 4.3 中,有一种方法(hack)。

要更改 UINavigationController 的高度,请在viewWillAppear:animated:函数中更改其框架大小。然后,高度将在整个应用程序中保持自定义。

于 2011-10-04T07:46:49.143 回答
0

据我所知,标准导航栏高度不应更改。

“具体来说,可以修改 barStyle、tintColor 和 translucent 属性,但绝对不能直接更改 UIView 级别的属性,例如 frame、bounds、alpha 或 hidden 属性。”

如果你喜欢自定义导航栏的外观,你可以使用 iOS 5 中的外观代理 [UINavigationBar 外观]

于 2012-01-11T05:54:14.510 回答