DR, вы правы: это очень запутанно!
Но я думаю, что Том прав, просто используйте [aBezierPath stroke].
Итак, это будет что-то вроде этого:
REF - это созданный вами (CGContextRef).
YOURBEZIERPATH - это (UIBezierPath *).
НеизбежноВы должны разобраться с проблемой «рисования вверх ногами», так что:
UIGraphicsPushContext(REF);
CGContextSaveGState(REF);
CGContextTranslateCTM(REF, 0, the height*);
CGContextScaleCTM(REF, 1.0, -1.0);
[YOURBEZIERPATH stroke];
CGContextRestoreGState(REF);
UIGraphicsPopContext();
Вот и все.
Re Ваш комментарий ниже : У меня естьмассив UIBezierPaths.У каждого Безье свой стиль и цвет.
Помогает ли это?... Замените один вызов "stroke" на цикл 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 !!
* высота: часто что-то вроде self.frame.size.height.Я просто включил это для тех, кто ищет общий пример кода в будущем.