Car*_*len 3 iphone cocoa cocoa-touch objective-c
我在自定义UIView中覆盖了drawRect:方法,我正在做一些自定义绘图.一切进展顺利,直到我需要将PDF资源(准确地说是矢量字形)绘制到上下文中.首先,我从文件中检索PDF:
NSURL *pdfURL = [NSURL fileURLWithPath:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"CardKit.bundle/A.pdf"]];
CGPDFDocumentRef pdfDoc = CGPDFDocumentCreateWithURL((CFURLRef)pdfURL);
CGPDFPageRef pdfPage = CGPDFDocumentGetPage(pdfDoc, 1);
Run Code Online (Sandbox Code Playgroud)
然后我创建一个与加载的PDF尺寸相同的框:
CGRect box = CGPDFPageGetBoxRect(pdfPage, kCGPDFArtBox);
Run Code Online (Sandbox Code Playgroud)
然后我保存我的图形状态,这样我就不会搞砸了:
CGContextSaveGState(context);
Run Code Online (Sandbox Code Playgroud)
然后我执行CTM的缩放+翻译,理论上翻转整个上下文:
CGContextScaleCTM(context, 1.0, -1.0);
CGContextTranslateCTM(context, 0.0, rect.size.height);
Run Code Online (Sandbox Code Playgroud)
然后我缩放PDF以使其适当地适合视图:
CGContextScaleCTM(context, rect.size.width/box.size.width, rect.size.height/box.size.height);
Run Code Online (Sandbox Code Playgroud)
最后,我绘制PDF并恢复图形状态:
CGContextDrawPDFPage(context, pdfPage);
CGContextRestoreGState(context);
Run Code Online (Sandbox Code Playgroud)
问题在于没有任何可见的东西.所有这些代码理论上应该将PDF字形绘制到视图中,对吧?
如果我删除用于翻转上下文的scale + translate,它会完美地绘制:它只是颠倒了.
有任何想法吗?
Rob*_*ger 10
尝试在比例之前进行翻译:
CGContextTranslateCTM(context, 0.0, rect.size.height);
CGContextScaleCTM(context, 1.0, -1.0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2486 次 |
| 最近记录: |