Я переопределяю метод drawRect: в пользовательском UIView, и я делаю несколько пользовательских чертежей. Все шло хорошо, пока мне не понадобилось рисовать ресурс PDF (точнее, векторный глиф) в контексте. Сначала я извлекаю PDF из файла:
NSURL *pdfURL = [NSURL fileURLWithPath:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"CardKit.bundle/A.pdf"]];
CGPDFDocumentRef pdfDoc = CGPDFDocumentCreateWithURL((CFURLRef)pdfURL);
CGPDFPageRef pdfPage = CGPDFDocumentGetPage(pdfDoc, 1);
Затем я создаю коробку с такими же размерами, что и загруженный PDF:
CGRect box = CGPDFPageGetBoxRect(pdfPage, kCGPDFArtBox);
Затем я сохраняю свое графическое состояние, чтобы ничего не испортить:
CGContextSaveGState(context);
А затем я выполняю масштабирование + перевод CTM, теоретически переворачивая весь контекст:
CGContextScaleCTM(context, 1.0, -1.0);
CGContextTranslateCTM(context, 0.0, rect.size.height);
Затем я масштабирую PDF-файл так, чтобы он правильно вписывался в вид:
CGContextScaleCTM(context, rect.size.width/box.size.width, rect.size.height/box.size.height);
И, наконец, я рисую PDF и восстанавливаю графическое состояние:
CGContextDrawPDFPage(context, pdfPage);
CGContextRestoreGState(context);
Проблема в том, что ничто не видно нарисовано. Весь этот код должен теоретически нарисовать глиф PDF в представлении, верно?
Если я удаляю масштаб + перевод, используемый для переворачивания контекста, он отлично рисует: он просто переворачивает вверх ногами.
Есть идеи?