当前位置:  开发笔记 > IOS > 正文

导航控制器透明栏样式不起作用

如何解决《导航控制器透明栏样式不起作用》经验,为你挑选了2个好方法。

我正在使用导航控制器,我将样式设置为:

navController.navigationBar.barStyle = UIBarStyleBlackTranslucent;

但是当我运行我的程序时,导航控制器看起来像是在白色背景之上,而不是我的背景.当我向左或向右推动控制器时,我的所有视图(当前视图)都会移动到顶部,与导航栏的大小完全相同.在那里我可以通过导航控制器栏看到我的背景.有任何想法吗?当我的barStyle设置为不透明时,一切看起来都很好.我在考虑将我的视图框设置为负"y"值,但我认为应该采用更优雅的方式.



1> Marco..:

我相信UINavigationController假定您的控制器视图框架不包括导航栏下方的区域.

UIBarStyleBlackTranslucent更常用于UIToolbar,因此Apple可能不容易使用UINavigationBar.如果你想在条形区域下可靠地渲染,你可能需要放弃UINavigationController,或者开始破解框架(小心旋转).

此外,如果您打算在几秒钟后隐藏导航栏,那么如果您将其淡出(如照片应用程序)而不是尝试将其向上滑动(如Mobile Safari),则会容易.相信那个......我花了很多时间来学习艰难的方式.



2> Resh32..:

只需使用透明背景图像,半透明= 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的透明图像.

spacer.gif的

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有