为什么UIGraphicsGetCurrentContext()在全球范围内可用?

时间:2013-04-28 02:21:58

标签: ios objective-c c uikit uigraphicscontext

来自Apple iOS Documentation #UIGraphicsGetCurrentContext:“在iOS 4及更高版本中,您可以从应用的任何主题调用此功能。”

另外,为什么方法以C函数格式调用 UIGraphicsGetCurrentContext()而不是Objective-C邮件格式[UIView UIGraphicsGetCurrentContext]

1 个答案:

答案 0 :(得分:1)

iOS上有一些API可以通过C而不是ObjC对象访问。用于绘图的CoreGraphics(所有CG*函数)是最重要的函数之一。

直接绘图通常在CGContextRef中完成,代表图形上下文。 UIKit为绘图保留了一堆上下文(通常你不会在当前上下文之外进行多少交互)。此堆栈由全局C函数访问,因为您可以从任何地方使用它们。通常,它们是从drawRect:内部访问的,但您可以在其他位置使用此堆栈。 Per the docs

  

但是,如果您没有使用UIView对象来绘制图形   必须使用。手动将有效上下文推送到堆栈   UIGraphicsPushContext函数。