无法从导航栏中删除阴影

时间:2014-08-04 15:47:01

标签: ios uinavigationcontroller uinavigationbar

我正在尝试从导航栏中移除阴影但未获得成功(iOS7)。

使用下面的代码,

方法1

    [self.navigationController.navigationBar setBackgroundImage:image
       forBarPosition:UIBarPositionAny
       barMetrics:UIBarMetricsDefault];

    [self.navigationController.navigationBar setShadowImage:[UIImage new]];

方法2

    for (UIView *view in self.navigationController.navigationBar.subviews) {
        for (UIView *view2 in view.subviews) {
            if ([view2 isKindOfClass:[UIImageView class]]) {
                [view2 removeFromSuperview];
            }
        }
    }

方法3

    [self.layer setMasksToBounds:YES];

方法4

    [[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
    [[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];

方法5

    [self.navigationController.navigationBar setBackgroundImage:image
                                                 forBarPosition:UIBarPositionAny
                                                     barMetrics:UIBarMetricsDefault];

    [self.navigationController.navigationBar setShadowImage:[[UIImage imageNamed:@"transparentpx.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(1, 1, 1, 1)]];

他们都不适合我。 任何人都可以建议新方法..

2 个答案:

答案 0 :(得分:1)

使用空图像并不适合我。

我不得不使用1x1像素透明图像作为阴影图像,以使其看起来不可见。

[self.navigationBar setShadowImage:[[UIImage imageNamed:@"navbar-shadow"] resizableImageWithCapInsets:UIEdgeInsetsMake(1, 1, 1, 1)]];

答案 1 :(得分:0)

你试过这个吗?

self.navigationController.navigationBar.layer.opacity = 0;
self.navigationController.navigationBar.layer.borderWidth = 0;
self.navigationController.navigationBar.layer.borderColor = [[UIColor clearColor] CGColor];