iOS“当前的graphics上下文” – 这是什么

当我画线和形状等,我得到了iOS中的“当前的graphics上下文”。

究竟是什么“当前的graphics上下文” – 我正在寻找3万英尺的描述。

现在我只是复制和粘贴UI代码,不完全确定它在做什么。

操作系统需要一个地方来保存信息,比如绘图状态,你不想在每一个CG绘图命令中指定绘图状态,例如绘制位图或视图,要使用的缩放或其他变换,最后的颜色你指定的等等

上下文告诉每个CG调用哪里可以find所有这些“东西”为您当前的绘图调用。 为完全相同的绘图调用给出不同的上下文,并且该调用可以以完全不同的视图绘制到不同的位图,具有不同的颜色,不同的比例等。

graphics上下文是存储关于绘图状态信息的地方。 这包括填充颜色,笔触颜色,线条宽度,线条图案,缠绕规则,蒙版,当前path,透明度图层,变换,文本变换等。使用CoreGraphics调用时,指定要用于每个函数的上下文。 这意味着您可以一次使用多个上下文,但通常只使用一个。 在UIKit层,有一个“当前”graphics上下文的概念,这是一个graphics上下文,被所有UIKit级别的绘图调用(例如-[UIColor set]UIBezierPath绘图)使用。 当前上下文存储在一堆上下文中,因此您可以为某个绘图创build新的上下文,然后在完成之后恢复上一个上下文。 通常情况下,您可以在CALayer显示相关方法内的-[UIView drawRect:]内部获得一个免费的上下文,否则不会。

过去,“当前”上下文是一个应用程序范围内的全局状态,因此在主线之外触摸是不安全的。 从iOS 4.0(我相信),这成为一个线程本地状态和UIKit级别的绘图方法变得安全的后台线程使用。

基本上它是一个平台(iOS,Android,JavaME等)中的一个类,它提供对该平台提供的所有绘图/显示function的访问。 当然,对于不同的平台而言,它有所不同,但这是3万英尺的描述:)