我使用UINavigationController的典型情况,id喜欢使导航栏更高一些。设置它的边界和框架似乎没有什么区别,即时使用此代码
//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)];
但无济于事。有任何想法吗?
答案 0 :(得分:2)
我认为你不能改变导航栏的高度。除非您添加提示消息...但这不是您想要的。
框架是视图的可见区域。界限是内部区域。通常它的原点为(0,0),并且与帧一样宽和高。但是,当内容超出可见区域时(如使用UIScrollView),边界可能更大(原点不同)。您很少看到小于其各自帧的边界。
编辑:看看你的代码,[UINavigationController new]是关于什么的?你应该做[[UINavigationController alloc] init],不是吗?另外,你所做的并不是真正的子类化......
答案 1 :(得分:1)
在2009年的时候,可能无法改变UINavigationController的高度。但是,在iOS SDK 4.3中,有一种方法(黑客)。
要更改UINavigationController的高度,请在viewWillAppear:animated:
函数中更改其帧大小。然后,高度将在整个应用程序中保持自定义。
答案 2 :(得分:0)
据我所知,不应更改标准导航栏高度。
“具体来说,没关系 修改barStyle,tintColor和半透明属性,但是你 绝不能直接更改UIView级属性,如框架, 边界,alpha或隐藏属性。“
如果您想自定义导航栏的外观,可以使用iOS 5中的外观代理[UINavigationBar外观]