UINavigationController Shadow

时间:2015-09-08 17:28:22

标签: ios xcode uinavigationcontroller uinavigationbar

尝试按照here概述的方法为我的UINavigationController添加阴影。但是,该方法似乎不起作用。

以下是我正在使用的代码:

- (void)viewDidLoad
{
    [super viewDidLoad];

    // ..... etc. ....

    self.navigationController.view.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:self.navigationController.view.bounds cornerRadius:self.navigationController.view.layer.cornerRadius].CGPath;
    [self.navigationController.view.layer setMasksToBounds: NO];
    [self.navigationController.view.layer setShadowColor: [UIColor blackColor].CGColor];
    [self.navigationController.view.layer setShadowOffset: CGSizeMake(0, 1)];
    [self.navigationController.view.layer setShadowRadius:3];
    [self.navigationController.view.layer setShadowRadius: 4.0];
    [self.navigationController.view.layer setShadowOpacity: 0.25];

没有影子:((见图)。

enter image description here

任何想法为什么?感谢您的任何意见。

1 个答案:

答案 0 :(得分:1)

这对我有用:尝试将您设置的任何内容设置为导航栏而不是导航控制器:enter image description here r

self.nvBar.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:self.nvBar.bounds cornerRadius:self.nvBar.layer.cornerRadius].CGPath;
        [self.nvBar.layer setShadowColor: [UIColor redColor].CGColor];
    [self.nvBar.layer setShadowOffset: CGSizeMake(0, 13)];
    [self.nvBar.layer setShadowRadius:3];
    [self.nvBar.layer setShadowRadius: 4.0];
    [self.nvBar.layer setShadowOpacity: 0.15];