Das Hinzufügen von Schatten zur Ebene führt zu einem verschlechterten Aussehen der Netzhaut

8

Ich habe ein Problem mit CALayer-Schatten. So mache ich meine Meinung:

%Vor%

Okay, das funktioniert ganz gut. Das hinzugefügte Bild ist die Retina-Auflösung. Sobald ich jedoch einen Schatten zur Ebene hinzufüge, springt er zur Standardauflösung, wodurch die Schaltfläche unscharf erscheint.

%Vor%

Gibt es einen Grund, warum das Hinzufügen eines Schattens dieses Problem verursacht?

    
sudo rm -rf 04.06.2011, 08:06
quelle

1 Antwort

20

Ich kann nicht wirklich sagen, warum es passiert, aber ich nehme an, dass es durch die UIImage-Erstellung verursacht wird. Sie haben eine große (Retina-Größe 600 * 600 Pixel) CGImageRef erstellt und daraus die UIImage. Aber der UIImage ist nicht bewusst, dass es ein Retina-Bild ist (es hat jetzt 600 * 600 Punkte, es sollte 300 * 300 Punkte mit Skalierungsfaktor 2 haben, was wiederum 600 * 600 Pixel ergibt).

Bitte versuchen Sie, Ihre UIImage mit imageWithCGImage:scale:orientation: zu erstellen. Dies wird die UIImage auf Retina-Skala aufmerksam machen und die Layer-Operationen können in Ordnung sein.

Also wäre deine Zeile:

%Vor%

Bearbeiten (siehe Kommentar unten): Das Problem wird durch l1.layer.shouldRasterize = YES verursacht. Sie müssen auch l1.layer.rasterizationScale = scale angeben und das Bild wird wie erwartet dargestellt.

    
marcus 05.06.2011, 08:35
quelle

Tags und Links