我想在路径或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];
答案 0 :(得分:2)
问题是
[self.navigationController.view.layer setMasksToBounds:YES];
顾名思义,图层外的所有内容 - 包括阴影 - 都会被屏蔽。
答案 1 :(得分:1)
在Swift3中
self.navigationController?.view.layer.shadowOffset = CGSize(width: 0, height: 5)
self.navigationController?.view.layer.masksToBounds = true
答案 2 :(得分:0)
将setMasksToBounds
设置为NO
。就像这样
[self.navigationController.view.layer setMasksToBounds:NO];
你可以添加阴影而不会丢失角落,尝试使用你的代码
[self.navigationController.view setShouldRasterize:YES];
设置一些shadowOffset&尝试
setShadowOffset:CGSizeMake(0, 5)
答案 3 :(得分:0)
navigationController?.navigationBar.shadowImage = UIImage(named: "shadow")