私はこれを何時間も解決しようとしてきましたが、何も見つかりませんでした。解決策は簡単だと思いますが、やはり見えません。
まったく異なる内部座標系を持つパスを表示しようとしています。を使用しCGAffineTransformation
て画面座標系に変換しています。ものすごく単純。しかし、1. は機能し、2. は何も表示しません。パフォーマンス上の理由から、1. の使用は避けたいと思います。
ご参考までに、変換行列はIdentity
描画呼び出しの前後にあります (ここには示されていません)。また、CGContextGetPathBoundingBox
両方の場合で実行しましたが、2. ではアフィン変換が発生していないようです。
1.パスを手動で変換する
// Get the transform
CGAffineTransform transform = box.transform;
// Add a transformed copy of the path
CGContextAddPath(offscreenContext, CGPathCreateCopyByTransformingPath(way.path, &transform));
CGContextDrawPath(offscreenContext, kCGPathFillStroke);
2. iOSに魔法を働かせようとする
// Set the current transformation
CGAffineTransform transform = box.transform;
CGContextConcatCTM(offscreenContext, transform);
// Draw the path without transforming, iOS *should* do that for us
CGContextAddPath(offscreenContext, way.path);
CGContextDrawPath(offscreenContext, kCGPathFillStroke);
何か案が?