iPhone:UITabBarController 内的半透明导航栏
Posted
技术标签:
【中文标题】iPhone:UITabBarController 内的半透明导航栏【英文标题】:iPhone: Translucent navigation bar inside a UITabBarController 【发布时间】:2011-07-22 03:03:29 【问题描述】:来了。 我在 UITabBarController 中有一个 UINavigationController。 有没有办法将导航栏设置为半透明? 我尝试以编程方式将其设置为:
navigationController.navigationBar.translucent = YES;
但没有任何变化。 我什至尝试记录半透明值,它实际上是 YES,但条仍然完全不透明。 导航栏后面的视图覆盖了全屏,我什至可以在(半透明)状态栏下看到它。我真的不明白。 只有当导航控制器位于标签栏控制器内时,所有这些才会发生。
编辑: 你猜怎么了?是 xcode 搞砸了我的 nib 文件... 我从头开始重新创建了 xib,它按预期工作。 还是谢谢
【问题讨论】:
我也遇到过同样的问题,但我没有 xib。在我的情况下,它被设置为背景颜色。它必须是透明的。 【参考方案1】:您设置了错误的属性:
self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
【讨论】:
@Luigi:我刚刚尝试过,它确实有效,而且它没有被弃用(在 4.0 上)并且已经在科学 2.0 中可用。我建议你阅读documentation on UINavigationBar 并从苹果下载this source code。 @Zebs 现在绝对不推荐使用:UIBarStyleBlackTranslucent
Deprecated. Use UIBarStyleBlack and set the translucent property to YES instead.【参考方案2】:
我最近也在尝试使用 XCode 4.2.1 更改基于 UITabBarController 的应用程序的导航栏样式。 Zebs 给出的代码在这种情况下是错误的。如果您使用的是自己创建的 navigationController,那没关系,但问题是,由 UITabBarController 创建的 navigationController 是由 UITabBarController 创建的,因此正确的代码是:
self.moreNavigationController.navigationBar.barStyle = UIBarStyleBlack;
请注意,我们使用 moreNavigationController 而不仅仅是 navigationController。希望对遇到同样问题的人有所帮助。
【讨论】:
以上是关于iPhone:UITabBarController 内的半透明导航栏的主要内容,如果未能解决你的问题,请参考以下文章
带有 uinavigationcontroller 和 uitabbarcontroller 的 iphone 应用程序
iPhone 应用程序 - UINavigationController 和 UITabBarController 的组合
iPhone XCode UITabBarController 和 UINavigationController
将 UITabBarController 从单独的 XIB 加载到 iPhone 上的 Window 应用程序中
iOS 11 和 iPhone X:UINavigationBar 的工具栏间距在嵌入到 UITabBarController 时不正确