2016-05-12 5 views
2

Ich versuche, eine Art alt aussehende App zu erstellen, und als Ergebnis möchte ich, dass meine UIViews ohne Anti-Aliasing gerendert werden. Mit anderen Worten, ich möchte, dass meine Ansichten pixelisiert werden, insbesondere die view.layer.cornerRadius, da ich in diesem Fall meine Ansichten mit AutoLayout gestalten kann.Gibt es eine Möglichkeit, absichtlich alle Anti-Aliasing für UIView auszuschalten?

Dies würde es viel einfacher als das Zeichnen verschiedener Pixel Arts für verschiedene iPhone Größen machen. Wenn ich die Pixel-Art immer dann zeichne, wenn die Größe einer Ansicht geändert wird, müsste ich eine neue Pixel-Art erstellen, da die Skalierung der Bilder die Pixel-Art verzerren würde.

Das einzige, was ich gefunden habe, ist view.layer.allowsEdgeAntialiasing, die standardmäßig bereits auf false gesetzt ist. Ich dachte auch, die Core Graphics BeizerPaths zu verwenden, um die pixelisierten Schatten und Ecken zu zeichnen, wäre dies ein praktikabler Weg, um zu erreichen, was ich will?

+1

Ihre beste Wette ist, entsprechende Vermögenswerte zu diesem Zweck zu schaffen. –

+1

Zustimmen. Anti-Aliasing ist nicht das eigentliche Problem. Wenn Sie das 8-Bit-Aussehen eines Minecraft möchten, sollten Sie benutzerdefinierte Zellen erstellen und Ihre eigenen Bild-Assets für alles bereitstellen. – wottle

+0

In Ordnung, ich hatte Angst, dass das die Antwort wäre, danke für die Hilfe sowieso! – YellowPillow

Antwort

1

Sie können zum Core Graphics CGContext und Freunden gehen, und Sie können dem Graphics Context speziell mitteilen, Anti-Aliasing zu beenden, mit CGContextSetShouldAntialias (context, false);

Hier sind zwei kleine Bildschirmgreifer, einer ohne Jaggies und der andere mit Jaggies.

First Image With No Jaggies

Second Image WIth Jaggies

Verwandte Themen