2011-12-17 9 views
6

पर लागू करना जो मैं करने की कोशिश कर रहा हूं वह एक CGAffineTransform को एक CGPath पर लागू करना है।CGPathTransform को CGPath

मुझे पता है, अगर मैं एक CGContext पर चित्रित कर रहा था, तो मैं केवल संदर्भ को बदल दूंगा।

लेकिन मैं जो करना चाहता हूं वह वास्तविक पथ में परिवर्तन को लागू करना है। UIBezierPath मुझे इसे लागू करने के साथ अनुमति देता है ट्रांसफॉर्म: विधि, यह इसके CGPath को परिवर्तित नहीं करता है।

क्या कोई CGAffineTransform को CGGath पर लागू करने का कोई तरीका है ??

+0

"यह इसके CGPath को परिवर्तित नहीं करता है"? जब मैं 'UIBezierPath' में परिवर्तन लागू करता हूं, तो इसका समर्थन' CGPath' _is_ बदल जाता है, इसलिए मैं _transformed_ 'CGPath' को' bezierPath.CGPath' प्रॉपर्टी के साथ प्राप्त कर सकता हूं। –

उत्तर

13

आप CGPathCreateCopyByTransformingPath का उपयोग कर सकते हैं जो आपके पथ की एक प्रति बनाता है, जो CGAffineTransform द्वारा परिवर्तित किया गया है। एक परिवर्तनीय प्रतिलिपि बनाने के लिए CGPathCreateMutableCopyByTransformingPath भी है।

ध्यान दें कि इन कार्यों के दोनों आईओएस में पेश किया गया है 5.

आप कुछ है कि आईओएस के पुराने संस्करणों पर काम करता है की जरूरत है, तो आप एक खाली पथ (CGPathCreateMutable) बना सकते हैं और CGPathAddPath के साथ अपने अन्य पथ जोड़ सकता है जो वैकल्पिक रूप से इसके दूसरे पैरामीटर के रूप में एक परिवर्तन लेता है।

+0

यह काम किया, धन्यवाद –

+0

वास्तव में अच्छा धन्यवाद –

संबंधित मुद्दे