【发布时间】:2012-11-12 05:10:55
【问题描述】:
我使用以下代码使我的导航栏在 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];
提前致谢。
【问题讨论】:
-
您的图像蒙版是否有可能没有完全占据栏的高度,这会留下一个黑色的“空间”,您的 UINavigationBar 与视图不完全齐平?
-
已解决。 iOS6 为导航栏添加了阴影。所以我在 iOS5 中使用的屏蔽代码仍然可以正常工作 - 我只需要添加 if ([self.navigationController.navigationBar respondsToSelector:@selector(shadowImage)]) { [self.navigationController.navigationBar setShadowImage:[[UIImage alloc]在里面]]; } 摆脱阴影。
标签: ios uikit ios6 uinavigationbar