DR さん、その通りです。非常に紛らわしいです。
しかし、Tom は正しいと思います。[aBezierPath ストローク] を使用してください。
したがって、次のようになります。
REFは、作成した (CGContextRef) です。
YOURBEZIERPATHは (UIBezierPath*) です。
必然的に、「逆さまの描画」の問題に対処する必要があるため、次のようになります。
UIGraphicsPushContext(REF);
CGContextSaveGState(REF);
CGContextTranslateCTM(REF, 0, the height*);
CGContextScaleCTM(REF, 1.0, -1.0);
[YOURBEZIERPATH stroke];
CGContextRestoreGState(REF);
UIGraphicsPopContext();
それだけです。
以下のコメントを再確認してください: UIBezierPaths の配列があります。各ベジエには独自のスタイルと色があります。
これは役に立ちますか?... 1 つの「ストローク」呼び出しを for ループに置き換えます。
UIGraphicsPushContext(REF);
CGContextSaveGState(REF);
CGContextTranslateCTM(REF, 0, the height*);
CGContextScaleCTM(REF, 1.0, -1.0);
for each of YOURBEZIERPATH in your array...
{
CGContextSaveGState(REF);
[YOURBEZIERPATH stroke];
CGContextRestoreGState(REF);
}
CGContextRestoreGState(REF);
UIGraphicsPopContext();
実際には、わざわざ aBezierPath.CGPath またはそのコピーを使用する必要はありません。
繰り返しますが、UI と CG の 2 つの世界は非常に紛らわしいです !!
*高さ: 多くの場合、self.frame.size.height のようなものです。将来、一般的なコード例を探している人のために、これを含めます。