iOS hinzufügen / entfernen von Schatten aus einer Ansicht
Ich verstehe nicht, wie man entfernen Sie einen Schatten, der Hinzugefügt wurde, um eine Ansicht.
Ich meine Ansicht in initWithFrame
einen Schatten auf diese Weise:
self.layer.borderWidth = 2;
self.layer.borderColor = [UIColor clearColor].CGColor;
self.backgroundColor = [UIColor greenColor];
[self.layer setCornerRadius:8.0f];
CALayer *layer = self.layer;
layer.shadowOffset = CGSizeMake(2, 2);
layer.shadowColor = [[UIColor blackColor] CGColor];
layer.cornerRadius = 8.0f;
layer.shadowRadius = 3.0f;
layer.shadowOpacity = 0.80f;
layer.shadowPath = [[UIBezierPath bezierPathWithRect:layer.bounds] CGPath];
Nach der Ausführung der app möchte ich entfernen Sie die Schatten aus dieser Sicht. Ich habe versucht, mit:
layer.hidden = YES;
oder
self.layer.hidden = YES;
aber diese blendet die Ansicht vollständig, nicht nur die zusätzlichen Schatten.
Gibt es eine Möglichkeit zum abrufen der zusätzlichen Schatten aus einer Sicht und dann verstecken Sie es?
Danke!
- Gibt es einen Grund, Sie deklarieren eine lokale
layer
variable zeigt auf derself.layer
in der Mitte des Codes ? - ich habe gelesen, dass könnte besser sein für die performance-Gründen erklären shadowPath mit UIBezierPath, ist es nicht? es ist eine bewährte Methode, dies zu tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, man könnte die
shadowOpacity
Eigentum IhrerCALayer
.So sollte dies funktionieren:
Sehen die
CALayer
'sshadowOpacity
- Dokumentation SeiteUnd zeigen Ihr Schatten-Verwendung:
Sorry, sicher nicht das richtige Weg, aber haben Sie versucht, die änderung der Eigenschaften der
layer shadow
? Zum Beispiel, einer dieser;die "Schicht", die Sie versuchen zu machen, verborgen ist die Ebene des Objekts, das Sie mit einem Schatten, es ist nicht ein Aspekt sichtbar.. nur die Objekte mit in die Schicht... es ist eher verwirrend, zu konzipieren sowieso, der einzige Weg, um entfernen Sie den Schatten rückgängig zu machen, was Sie ursprünglich Taten, das wurde oben vorgeschlagen, es gibt keine definierte Eigenschaft, die können Sie einfach ändern, bool und machen die Schatten Weg gehen
Swift 4.2
Ich bin mit dieser in meinem code für die labels und die Navigationsleiste.