2011-12-17 10 views
6

Lo que intento hacer es aplicar un CGAffineTransform a un CGPath.Aplicación de CGAffineTransform a CGPath

Sé que si estuviera dibujando en un CGContext, simplemente transformaría el contexto.

Pero lo que quiero hacer es aplicar una transformación a la ruta real en sí. UIBezierPath me permite hacer esto con el método applyTransform: no transforma su CGPath.

¿Hay alguna forma de aplicar un CGAffineTransform a un CGPath?

+0

"no transforma su CGPath"? Cuando aplico la transformación a un 'UIBezierPath', su respaldo' CGPath' _is_ se transforma, por lo que puedo obtener _transformed_ 'CGPath' con la propiedad' bezierPath.CGPath'. –

Respuesta

13

Puede usar CGPathCreateCopyByTransformingPath que crea una copia de su ruta, transformada por un CGAffineTransform dado. También hay CGPathCreateMutableCopyByTransformingPath para crear una copia mutable.

Tenga en cuenta que estas dos funciones se han introducido en IOS 5.

Si necesita algo que funciona en las versiones anteriores de iOS, se puede crear una ruta de vacío (CGPathCreateMutable) y añadir su otro camino con el que CGPathAddPath opcionalmente toma una transformación como su segundo parámetro.

+0

funcionó, gracias –

+0

realmente agradable gracias –

Cuestiones relacionadas