2012-10-17 143 views
19

我在xib中创建了一个uiview,背景颜色为清晰的颜色。当我在视图图层上应用阴影时,阴影不会出现。但是,当我设置背景色而不是清晰的颜色时,阴影正在显示。请帮忙。当背景颜色清晰时,阴影不显示颜色

这是我的代码

self.cView.layer.shadowColor=[UIColor whiteColor].CGColor; 
self.cView.layer.shadowOffset=CGSizeZero; 
self.cView.layer.shadowRadius=30.0; 
self.cView.layer.shadowOpacity=1.0; 
self.cView.layer.cornerRadius=10.0; 

回答

22

问题是,该影子实际上考虑到“上”层。如果没有什么它不会有阴影:How Shadows Work

编辑:

有这个配方copied from paste bin

view.layer.shadowColor = [UIColor colorWithWhite:.5 alpha:1].CGColor; 
view.layer.shadowRadius = 4.0f; 
view.layer.shadowPath = CGPathCreateWithRect(CGRectMake(0, 0, 50, 50), NULL); 
view.layer.shadowOpacity = 1.0f; 
view.layer.shadowOffset = CGSizeMake(1, 1); 

但我怀疑这将是任何使用您的:结果是查看'绘'与阴影的颜色和它周围的阴影。

+1

是的,阴影只发生在视图不透明或其中有一些内容。设置清晰的颜色就像将视图设置为透明。 – Mukunda

+0

不利的一面是,UIView.animate不适用于shadowPath。 –

1

不要忘记设置self.cView.clipToBoundsNO

+0

不,我只是玩这个问题,可以确认它。 –

+0

它不起作用 – Mukunda

+0

如果你设置的背景颜色不是真的透明,但是1%不透明?一个微弱的阴影显示?如果背景是50%不透明,阴影是否显示为半透明? – Cyrille