2013-02-23 37 views
2

我想創建一個像菜單和UINavigationController之間帶有所有內容的陰影之間的Path或Facebook中的菜單。我可以爲圖層添加圓角,但是我應用於該圖層的陰影未顯示。該代碼有什麼問題?這是工作,如果我使用UIViewController而不是UINavigationController ...(該代碼是在視圖內添加爲UINavigationController作爲rootViewController)如何向UINavigationController添加陰影

問題是,我不想鬆散UINavigationController的圓形邊框

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

回答

1

在Swift3

self.navigationController?.view.layer.shadowOffset = CGSize(width: 0, height: 5) 
self.navigationController?.view.layer.masksToBounds = true 
0

設置setMasksToBoundsNO。像這種

[self.navigationController.view.layer setMasksToBounds:NO]; 

您可以添加陰影沒有鬆動的角落,試試這個與您的代碼

[self.navigationController.view setShouldRasterize:YES]; 

設置一些shadowOffset &嘗試

setShadowOffset:CGSizeMake(0, 5) 
+0

是否有可能做到這一點沒有鬆動的圓角? – 2013-02-23 17:02:26

+0

我已經嘗試過了,但是我只能在圖層上應用setShouldRasterize,但它不起作用,也使得視圖非常強烈 – 2013-02-23 17:12:03

2

問題是
[self.navigationController.view.layer setMasksToBounds:YES];
顧名思義,該層外面的一切 - 包括陰影 - 被屏蔽。

+0

好的,但是我鬆開了圓角? – 2013-02-23 17:01:59

+0

爲什麼不添加一個圓角的「容器」視圖並將backgroundColor設置爲[UIColor clearColor]? – tagyro 2013-03-09 19:05:25