2015-09-08 4 views
0

Пытается следовать подходу, указанному here, чтобы добавить тень к моему UINavigationController. Однако этот метод, похоже, не работает.UINavigationController Shadow

Вот код, я использую:.?.

- (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

Любые идеи, почему Спасибо за любой вклад

+0

В построителе интерфейсов, возможно, вам может потребоваться переместить свой mapView ниже в иерархии. – Adrian

+0

Проверьте мой ответ @Nick B –

ответ

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]; 
+0

в вашем случае используйте self.navigationController.navigationBar.layer –

+0

Спасибо @ Mr.T! Да, мне нужен 'self.navigationController.navigationBar.layer. [Etc]'. еще раз спасибо –

Смежные вопросы