iOS"当前图形上下文" - 那是什么

Ian*_*ink 16 iphone ios

当我绘制线条和形状等时,我会在iOS中获得"当前图形上下文".

究竟什么是"当前图形上下文" - 我正在寻找30,000英尺的描述.

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

Lil*_*ard 16

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

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


hot*_*aw2 15

操作系统需要一个保存信息的位置,例如绘图状态,您不希望在每个CG绘图命令中指定这些信息,例如要绘制的位图或视图,要使用的比例或其他变换,最后一种颜色你指定了等等

上下文告诉每个CG调用在哪里找到当前绘图调用的所有"东西".为完全相同的绘图调用提供不同的上下文,并且该调用可能在完全不同的视图中绘制到不同的位图,具有不同的颜色,不同的比例等.