2

我想在 Path 或 Facebook 中创建一个幻灯片菜单,在我的菜单和 UINavigationController 之间有一个阴影,里面有所有内容。我可以为图层添加圆角,但我应用到图层的阴影未显示。该代码有什么问题?如果我使用 UIViewController 而不是 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];
4

4 回答 4

2

问题是

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

顾名思义,图层之外的所有内容(包括阴影)都被遮盖了。

于 2013-02-23T17:00:19.963 回答
1

在 Swift3 中

self.navigationController?.view.layer.shadowOffset = CGSize(width: 0, height: 5)
self.navigationController?.view.layer.masksToBounds = true
于 2017-06-20T04:35:35.947 回答
0

设置setMasksToBoundsNO.like 这个

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

您可以在不丢失角落的情况下添加阴影,用您的代码试试这个

[self.navigationController.view setShouldRasterize:YES];

设置一些 shadowOffset 并尝试

setShadowOffset:CGSizeMake(0, 5)
于 2013-02-23T17:00:13.740 回答
0
navigationController?.navigationBar.shadowImage = UIImage(named: "shadow")
于 2018-12-14T10:13:11.077 回答