Schatten erscheinen nicht für UIView mit CALayer
Habe ich eine Unterklasse UIView
geladen von einer Feder, und ich Schaffe es nicht, einen Schatten zu zeichnen, um es. Ich versuche, einen Schatten zu erscheinen, um die gesamte Ansicht seit geraumer Zeit jetzt. Ich gewählt, um es in seine eigene Unterebene zur Vereinfachung der Animation später. Hier ist der code:
-(void)awakeFromNib
{
self.clipsToBounds = NO;
//set up the shadow layer
CALayer *shadow = [CALayer layer];
shadow.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y, self.bounds.size.width, self.bounds.size.height);
shadow.shadowColor = [UIColor blueColor].CGColor;
shadow.shadowRadius = 15.0;
shadow.opacity = 1.0;
[self.layer addSublayer:shadow];
//I set this property so I have access to it later to more easily animate it.
self.shadowLayer = shadow;
}
Wenn ich NSLog
die shadowLayer
Eigenschaft, die Koordinaten und Rahmen sind korrekt. Es entspricht der Ansicht, es ' s sichern.
Ich auch eine Grenze gesetzt Farbe und Eckenradius auf self.layer
und es wird richtig angezeigt. Wenn ich die Schatten auf self.layer
es erscheint, aber es umfasst alle Untersichten von meinen Eltern UIView
.
Jede Hilfe wird sehr geschätzt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bin, vorausgesetzt, Sie haben
QuartzCore
importiert. Ich glaube, Sie brauchen, um set & erstellen Sie eine Grenze, um dieUIView
. Die Möglichkeit zur Verwendung dieser[self roundedLayerWithShadow:yourView.layer radius:5.0f];
Kämpfte ich mit dem gleichen, und es stellt sich heraus, müssen Sie
shadowOpacity
1.0. In Ihrem code, den Sie versehentlichopacity
stattshadowOpacity
. Das ist die gleiche Frage, die ich hatte.In der Regel für den Schatten, zu erscheinen:
Swift 4.2. Beispiel-Implementierung:
Abgesehen von
borderRadius
Ihreshadow
Schicht sieht sehr viel transparenter. Daher wird es nicht fallen Schatten aufshadow.superlayer
.