2

对于我的 Cocoa 应用程序,我需要知道给定的 CGContextRef 是否是 PDF 上下文(而不是位图或屏幕上下文),以便在我的 CALayer 的 drawInContext 实现中采用不同的渲染路径。使用 iOS SDK,我可以这样做:

BOOL isPDF = !CGRectIsEmpty(UIGraphicsGetPDFContextBounds());

但 UIGraphics* 函数在 OS X SDK 中不可用。我希望能够使用:

BOOL isPDf = CFGetTypeID(currentContext) != CGContextGetTypeID();

但它似乎并不成立,并且没有 CGPDFContextGetTypeID() 函数返回特定于 PDF 的类型 ID。

有什么方法可以识别给定 CGContextRef 的类型而不做任何讨厌的事情,比如设置静态变量?

4

1 回答 1

0

没有用于获取 a 类型的公共 API CGContextRef,因此您必须将此信息保留在上下文 ref 本身之外。

有一个未记录的CGContextGetType()函数返回上下文的类型,请参阅CGContextType枚举以获取可能值的列表。但是你真的不应该使用它。

于 2012-05-07T20:31:47.997 回答