繁体   English   中英

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

[英]iOS “ current graphics context” - What is that

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

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

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

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

过去,“当前”上下文是应用程序范围的全局状态,因此在主线程之外触摸是不安全的。 从 iOS 4.0(我相信)开始,这变成了线程本地状态,并且 UIKit 级别的绘图方法可以安全地用于后台线程。

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

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

基本上,它是平台(iOS、Android、JavaME 和许多其他平台)中的一个类,提供对该平台提供的所有绘图/显示功能的访问。 当然,不同平台的情况会有所不同,但这是 30,000 英尺的描述:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM