2011-12-17 30 views
6

Điều tôi đang cố gắng áp dụng là áp dụng CGAffineTransform cho CGPath.Áp dụng CGAffineTransform vào CGPath

Tôi biết, nếu tôi vẽ lên CGContext, tôi sẽ chỉ biến đổi ngữ cảnh.

Nhưng điều tôi muốn làm là áp dụng biến đổi cho chính đường dẫn thực tế. UIBezierPath cho phép tôi làm điều này với phương thức applyTransform: nó không biến đổi nó thành CGPath.

Có cách nào để áp dụng CGAffineTransform cho chính CGPath không ??

+0

"nó không biến đổi CGPath"? Khi tôi áp dụng biến đổi thành 'UIBezierPath', sự sao lưu của nó' CGPath' _is_ được chuyển đổi, vì vậy tôi có thể nhận được _transformed_ 'CGPath' với thuộc tính' bezierPath.CGPath'. –

Trả lời

13

Bạn có thể sử dụng CGPathCreateCopyByTransformingPath để tạo bản sao đường dẫn của mình, được chuyển đổi theo CGAffineTransform nhất định. Ngoài ra còn có CGPathCreateMutableCopyByTransformingPath để tạo bản sao có thể thay đổi.

Lưu ý rằng cả hai chức năng đã được giới thiệu trong iOS 5.

Nếu bạn cần cái gì đó hoạt động trên các phiên bản trước đó của iOS, bạn có thể tạo ra một con đường trống (CGPathCreateMutable) và thêm con đường khác của bạn với CGPathAddPath mà tùy ý có một phép biến đổi làm tham số thứ hai của nó.

+0

nó hoạt động, cảm ơn –

+0

thực sự tốt đẹp cảm ơn –

Các vấn đề liên quan