即时通讯使用与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)];
但无济于事。 有任何想法吗?
我不认为你可以更改导航栏的高度。 除非你添加提示消息......但是,这不是你想要的。
Frame是一个视图的可见区域。 边界是内部区域。 通常这具有的(0,0)的原点,并作为宽和高为帧。 然而,当含量超过可视区域(像一个UIScrollView)的界限可以较大(和原点不同)。 你很少看到低于各自的框架更小的范围。
编辑:看你的代码是什么[UINavigationController的新]什么? 你应该做的[[UINavigationController的页头]初始化],不应该吗?
此外,你在做什么是不是真的子类...
截至2009年的时候,有可能是没有办法改变的UINavigationController的高度。 然而,在iOS版SDK 4.3,还有一个办法(黑客)。
要改变的UINavigationController的高度,以改变其帧大小viewWillAppear:animated:
功能。 然后,高度将保持贯穿整个应用程序定制。
据我了解标准的导航栏高度不应改变。
“具体而言,它是好的修改barStyle,tintColor,和半透明属性,但绝不能直接改变的UIView级属性,如帧,边界,α或直接隐藏属性”。
如果你喜欢自定义导航栏的外观,您可以使用外观代理[UINavigationBar的外观在iOS 5中