在iOS6中无法使导航栏完全透明
我在iOS5中使用以下代码使导航栏透明:在iOS6中无法使导航栏完全透明,ios,uikit,ios6,uinavigationbar,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.navigationControll
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]];
}
去除阴影。是否可能是图像遮罩没有完全占据条形图的高度,从而留下一个黑色的“空间”,使UINavigationBar与视图不完全齐平?已解决。iOS6在导航栏中添加了一个阴影。所以我在iOS5中使用的屏蔽代码仍然可以正常工作-我只需要添加if([self.navigationController.navigationBar respondsToSelector:@selector(shadowImage)]){[self.navigationController.navigationBar setShadowImage:[[UIImage alloc]init]];}来消除阴影。
if ([self.navigationController.navigationBar respondsToSelector:@selector(shadowImage)])
{
[self.navigationController.navigationBar setShadowImage:[[[UIImage alloc] init] autorelease]];
// autorelease is necessary, or else [[UIImage alloc] init]'s retainCount is 2.
}
self.navigationController.navigationBar.translucent = YES; // Setting this slides the view up, underneath the nav bar (otherwise it'll appear black)
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];
//remove shadow
[[UINavigationBar appearance] setShadowImage: [[UIImage alloc] init]];