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

EDIT:

あり、このレシピ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

はあなたがNOからself.cView.clipToBoundsを設定することを忘れないでください私のコードですか?

+0

いいえ、私はちょうどこの問題で遊んで、それを確認することができます。 –

+0

これは動作していません – Mukunda

+0

本当に透明ではなく、1%不透明な背景色を設定するとどうなりますか?かすかな影が映っていますか?バックグラウンドが50%不透明である場合、影は半透明に表示されますか? – Cyrille

関連する問題