2011-10-12 13 views
7

Il mio problema è sostanzialmente lo stesso di this one. Ho un UIView e quando lo ruoto usding CGAffineTransformMakeRotation, i bordi non sono antialias.Come eseguire l'antialias su un UIView ruotato (NOT UIImageView)

Ho provato entrambi ad aggiungere la vista come sottoview in un UIView più grande e usando un bordo trasparente sulla vista ma nessuno di questi ha funzionato.

L'OP del post di cui sopra ha risolto questo problema creando un'immagine con bordi trasparenti in Photoshop e utilizzando invece UIImageView ma non posso fare lo stesso perché la dimensione di UIView è determinata in fase di esecuzione.

Qualcuno conosce qualche soluzione a questo problema?

Si noti che questo non è un duplicato di this post perché sono interessato all'utilizzo di un UIView e NON di UIImageView.

risposta

19

Prova a impostare UIViewEdgeAntialiasing = SÌ nel tuo app-info.plist

+0

Questo funziona davvero! Ci scusiamo per i secoli che mi ci sono voluti per vedere la tua risposta ... – Kremk

+0

Sai se questo aumenta l'utilizzo della CPU per la tua app? –

0

Ho risolto questo creando un'immagine di 3x3 px in Photoshop. Il pixel centrale dell'immagine ha il colore che desideravo avere lo sfondo e il resto dei pixel è trasparente. Quindi sono stato in grado di utilizzare un'istanza di UIImageView e definire la dimensione del frame in fase di esecuzione utilizzando il parametro -stretchableImageWithLeftCapWidth: topCapHeight: method.

Questa soluzione, naturalmente, non funziona ancora per UIViews ma in questo modo è possibile aggirare il problema della "dimensione variabile" e utilizzare invece UIImageView.

Problemi correlati