2012-10-17 114 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