Antialiasing in einer gedrehten UIView (NOT UIImageView)

7

Mein Problem ist im Grunde dasselbe wie dieses >. Ich habe eine UIView und wenn ich es mit CGAffineTransformMakeRotation rotiere, werden die Kanten nicht antialiasiert.

Ich habe versucht, die Ansicht als Unteransicht in einer größeren UIView hinzuzufügen und einen transparenten Rahmen für die Ansicht zu verwenden, aber keiner davon hat funktioniert.

Das OP des oben genannten Beitrags löste das, indem ich ein Bild mit transparenten Rändern in Photoshop mache und stattdessen ein UIImageView verwende, aber ich kann das nicht machen, weil die Größe der UIView zur Laufzeit bestimmt wird.

Kennt jemand irgendwelche Lösungen für dieses Problem?

Beachten Sie, dass dies kein Duplikat von ist Post, weil ich daran interessiert bin, eine UIView und KEINE UIImageView zu verwenden.

    
Kremk 12.10.2011, 12:29
quelle

2 Antworten

19

Versuchen Sie, UIViewEdgeAntialiasing = YES in Ihrer App-info.plist

zu setzen     
trackmate 09.02.2012, 09:39
quelle
0

Ich löste das, indem ich ein Bild mit 3x3 px in Photoshop erstellte. Das mittlere Pixel des Bildes hat die Farbe, die ich für meinen Hintergrund haben möchte, und der Rest der Pixel ist transparent. Dann konnte ich eine Instanz von UIImageView verwenden und die Frame-Größe zur Laufzeit definieren, indem ich die -stretchableImageWithLeftCapWidth: topCapHeight: -Methode verwendete.

Diese Lösung funktioniert natürlich immer noch nicht für UIViews, aber auf diese Weise können Sie das Problem "variable Größe" umgehen und stattdessen eine UIImageView verwenden.

    
Kremk 25.10.2011 15:50
quelle

Tags und Links