ios - 无法在 iOS6 中使导航栏完全透明

标签 ios uikit ios6 uinavigationbar

我使用以下代码使我的导航栏在 iOS5 中透明:

const float colorMask[6] = {222, 255, 222, 255, 222, 255};
UIImage *img = [[UIImage alloc] init];
UIImage *maskedImage = [UIImage imageWithCGImage: CGImageCreateWithMaskingColors(img.CGImage, colorMask)];
[self.navigationController.navigationBar setBackgroundImage:maskedImage forBarMetrics:UIBarMetricsDefault];

升级到 iOS6,导航栏仍然是透明的,但下面有一条细黑线。如何使导航栏完全透明?

我还尝试了以下所有方法:

self.navigationController.navigationBar.translucent = YES;
self.navigationController.navigationBar.opaque = YES;
self.navigationController.navigationBar.tintColor = [UIColor clearColor];
self.navigationController.navigationBar.backgroundColor = [UIColor clearColor];
[self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setBarStyle:UIBarStyleBlackTranslucent];
[[UINavigationBar appearance] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];

提前致谢。

最佳答案

已解决。 iOS6 为导航栏添加了阴影。所以我在 iOS5 上使用的屏蔽代码仍然可以正常工作——我只需要添加

if ([self.navigationController.navigationBar respondsToSelector:@selector(shadowImage)]) 
{ 
[self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]]; 
} 

去除阴影。

关于ios - 无法在 iOS6 中使导航栏完全透明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13338668/

相关文章:

ios - 更改 UIPickerView 中显示的行数

ios6 - 如何链接到 App Store 中的所有应用程序(开发者页面) - iOS 7

objective-c - 监视目录时dispatch_source_get_data不返回正确的标志

ios - 更新 View 的框架保持约束

php - 如何让 UIKIT nav accordion 始终打开?

uikit - UIActionSheet 可以多选 iOS8 – 不移除 UIWindow

ios - 如何在 iOS 中绘制没有抗锯齿/插值的位图?

ios - 当我子类化 UIView 并实现空的 drawRect 方法时, colorWithPatternImage 图像会调整大小以填充 View ,为什么?

ios - UIViewController init 方法中的隐式解包选项

ios - 在 iOS 的移动 Safari 中播放时,流媒体音频失真