iOS 7 UINavigationbar setTranslucent:没有崩溃应用程序[重复]
Posted
技术标签:
【中文标题】iOS 7 UINavigationbar setTranslucent:没有崩溃应用程序[重复]【英文标题】:iOS 7 UINavigationbar setTranslucent: NO crashes app [duplicate] 【发布时间】:2013-10-13 17:48:27 【问题描述】:我有一个 UINavigationBar,它在应用程序委托类中设置了背景图像,所以你可以想象为什么我不希望导航栏是半透明的。我相信这是罪魁祸首:http://imgur.com/v3e0NIo
反正当我放这行代码时:
[[UINavigationBar appearance] setTranslucent:NO];
在我的 AppDelegate 中我遇到了这个错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** Illegal property type, B for appearance setter, _installAppearanceSwizzlesForSetter:'
即使我尝试单独使每个类中的每个 UINavigationbar 不透明,图像中仍然有那个愚蠢的白条!但是没有抛出任何错误,这让我想知道代码是否不起作用,或者透明度不是我的问题?
谢谢!
编辑:
这是我在 AppDelegate 中用于为 NavBar 制作自定义背景的代码:
[[UINavigationBar appearance] setTitleTextAttributes: @
UITextAttributeTextColor: [UIColor whiteColor],
UITextAttributeTextShadowColor: [UIColor blackColor],
UITextAttributeTextShadowOffset: [NSValue valueWithUIOffset:UIOffsetMake(0.0f, 1.0f)],
UITextAttributeFont: [UIFont fontWithName:@"Code-Bold" size:23.0f]
];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:NO];
UIImage *navBarImage = [[UIImage imageNamed:@"menubar.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(5, 15, 5, 15)];
[[UINavigationBar appearance] setBackgroundImage:navBarImage forBarMetrics:UIBarMetricsDefault];
即使我将 UIViewController 的背景设为黑色,白条仍然存在。我现在非常怀疑透明度是我的问题!
【问题讨论】:
我宁愿不制作自定义 NavigationBar.. 【参考方案1】:Ty 并将其放在每个 viewcontrollers 类的 viewdidload
中:
self.navigationController.navigationBar.translucent = NO;
【讨论】:
我试过了,但仍然显示白色。让我想如果半透明真的是我的问题..【参考方案2】:如果你使用 Interface Builder,你可以从此禁用半透明
Xib 文件 -> Attributes Inspector -> Simulated Metrics 并将 Top Bar 属性设置为不透明
或者试试
self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;
或者或者或者查看这个帖子 https://***.com/a/19128721/2876717
【讨论】:
我正在使用情节提要 :( 我尝试了 UIBarStyleBlackOpaque,虽然白色电池和时间看起来不错,但白条仍然存在。故事板选项不存在,因为我使用的是导航控制器。以上是关于iOS 7 UINavigationbar setTranslucent:没有崩溃应用程序[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在 ios 7 中如何增加 UINavigationbar 的大小
覆盖 UINavigationBar 时 iOS 7 状态栏变黑
防止 iOS 7 UINavigationBar 使用 UIAppearance 为 barTintColor 更改设置动画
iOS6 和 7 的 UINavigationBar 背景图像