2012-10-17 3 views
19

Ich habe eine uiview in meinem Xib mit Hintergrundfarbe als klare Farbe erstellt. Wenn ich den Schatten auf die Ebene der Ansicht anwende, wird der Schatten nicht angezeigt. Aber wenn ich die Hintergrundfarbe anders als klare Farbe einstelle, wird Schatten angezeigt. Bitte helfen Sie.Shadow nicht angezeigt, wenn Hintergrundfarbe ist klar, Farbe

dies ist mein Code

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; 

Antwort

22

Das Problem ist, dass der Schatten tatsächlich die 'obere' Schicht berücksichtigt. Wenn es auf es ist nichts wird es keinen Schatten sein: How Shadows Work

EDIT:

Es gibt dieses Rezept 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); 

Aber ich bezweifle, dass dies für Sie von Nutzen sein wird: das Ergebnis ist ein Sehen Sie 'gemalt' mit der Farbe eines Schattens und eines Schattens um ihn herum.

+1

Ja, Schatten treten nur auf, wenn die Ansicht undurchsichtig ist oder ein Inhalt vorhanden ist. Das Einstellen einer klaren Farbe ist wie das Einstellen der Ansicht transparent. – Mukunda

+0

Der Nachteil ist, UIView.animate funktioniert nicht mit ShadowPath. –

1

Haben Sie nicht vergessen self.cView.clipToBounds-NO zu setzen?

+0

Nein, ich spiele nur mit diesem Problem und kann es bestätigen. –

+0

Es funktioniert nicht – Mukunda

+0

Was ist, wenn Sie eine Hintergrundfarbe nicht wirklich transparent, aber 1% opak einstellen? Zeigt sich ein schwacher Schatten? Wird der Schatten bei halber Transparenz angezeigt, wenn der Hintergrund zu 50% undurchsichtig ist? – Cyrille

Verwandte Themen