2011-12-17 21 views
6

Co próbuję zrobić, to zastosować CGAffineTransform do CGPath.Stosowanie CGAffineTransform do CGPath

Wiem, gdybym rysował na CGContext, po prostu przekształciłbym kontekst.

Ale chcę tylko zastosować transformację do samej ścieżki. UIBezierPath pozwala mi to zrobić za pomocą metody applyTransform :, nie przekształca jej CGPath.

Czy istnieje sposób zastosowania CGAffineTransform do samej CGPath?

+0

"nie przekształca to CGPath"? Kiedy stosuję transformację do 'UIBezierPath', jej podkład' CGPath' _is_ jest transformowany, więc mogę uzyskać _transformed_ 'CGPath' z właściwością' bezierPath.CGPath'. –

Odpowiedz

13

Możesz użyć CGPathCreateCopyByTransformingPath, który tworzy kopię Twojej ścieżki, przekształconą przez dane CGAffineTransform. Istnieje również CGPathCreateMutableCopyByTransformingPath do tworzenia zmieniającej się kopii.

Należy zauważyć, że obie te funkcje zostały wprowadzone w iOS 5.

Jeśli potrzebujesz czegoś, co działa na starszych wersjach iOS, można utworzyć pustą ścieżkę (CGPathCreateMutable) i dodać inną ścieżkę, która z CGPathAddPath opcjonalnie przyjmuje transformację jako swój drugi parametr.

+0

zadziałało, dziękuję –

+0

bardzo miłe dzięki –

Powiązane problemy