2009-09-06 60 views
0

我使用UINavigationController的id来使用导航栏的一个典型情况。设置其界限和框架似乎不会有所作为,即时通讯使用此代码我如何设置UINavigationBar在iphone应用程序中的高度

//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)]; 

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

回答

2

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

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

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

而且,你在做什么是不是真的继承...

+0

你说得对,它不是继承,想着其他的事情而写的问题。至于'new',必须从某处复制代码 – 2009-09-07 01:16:36

+0

新方法只是alloc/init的快捷方法。以完全相同的方式工作。 – horseshoe7 2011-08-01 10:11:19

1

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

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

0

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

“具体地,它是好的到 修改barStyle,tintColor,和半透明属性,但 决不直接改变的UIView级属性,如帧, 界限,α或直接隐藏属性。 “

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

相关问题