我正在使用导航控制器,我将样式设置为:
navController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
但是当我运行我的程序时,导航控制器看起来像是在白色背景之上,而不是我的背景.当我向左或向右推动控制器时,我的所有视图(当前视图)都会移动到顶部,与导航栏的大小完全相同.在那里我可以通过导航控制器栏看到我的背景.有任何想法吗?当我的barStyle设置为不透明时,一切看起来都很好.我在考虑将我的视图框设置为负"y"值,但我认为应该采用更优雅的方式.
我相信UINavigationController假定您的控制器视图框架不包括导航栏下方的区域.
UIBarStyleBlackTranslucent更常用于UIToolbar,因此Apple可能不容易使用UINavigationBar.如果你想在条形区域下可靠地渲染,你可能需要放弃UINavigationController,或者开始破解框架(小心旋转).
此外,如果您打算在几秒钟后隐藏导航栏,那么如果您将其淡出(如照片应用程序)而不是尝试将其向上滑动(如Mobile Safari),则会更容易.相信那个......我花了很多时间来学习艰难的方式.
只需使用透明背景图像,半透明= YES即可让内容在条形图下方流动.适用于iOS 5/6.在viewDidLoad中添加.
self.navigationController.navigationBar.translucent = YES; UIImage * backgroundImage = [UIImage imageNamed:@"spacer.gif"]; [self.navigationController.navigationBar setBackgroundImage:(UIImage *)backgroundImage forBarMetrics:UIBarMetricsDefault];
我在这里附上了spacer.gif图片,一张1px x 1px的透明图像.