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 der self.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?
InformationsquelleAutor Hw.Master | 2013-05-25
Schreibe einen Kommentar