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

Byr*_*Cox 7 uinavigationbar uikit ios ios6

我使用以下代码使我的导航栏在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];
Run Code Online (Sandbox Code Playgroud)

升级到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];
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Byr*_*Cox 6

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

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

摆脱投影.