对于我的 Cocoa 应用程序,我需要知道给定的 CGContextRef 是否是 PDF 上下文(而不是位图或屏幕上下文),以便在 CALayer 的 drawInContext 实现中采用不同的渲染路径。借助 iOS SDK,我可以通过以下方式执行此操作:
BOOL isPDF = !CGRectIsEmpty(UIGraphicsGetPDFContextBounds());
但 UIGraphics* 函数在 OS X SDK 中不可用。我希望能够使用:
BOOL isPDf = CFGetTypeID(currentContext) != CGContextGetTypeID();
但它似乎并不成立,并且没有 CGPDFContextGetTypeID() 函数返回特定于 PDF 的类型 ID。
有没有什么方法可以识别给定 CGContextRef 的类型,而不需要做任何像设置静态变量这样令人讨厌的事情?
最佳答案
没有用于获取 CGContextRef
类型的公共(public) API,因此您必须将此信息保留在上下文引用本身之外。
有一个未记录的CGContextGetType()返回上下文类型的函数,请参阅 CGContextType枚举可能值的列表。但你真的不应该使用这个。
关于cocoa - 识别 CGContextRef 何时为 PDF 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10402324/