我正在处理 Core Graphic 中的一些东西,我正在寻找关于几个主题的额外说明。
drawRect:我对此有所了解,并且知道这是 UIView 的所有绘图方面的所在,但我不清楚幕后发生了什么。当我创建一个 UIView 并填写 drawRect 然后将另一个对象的 UIView 设置为该自定义视图时会发生什么?什么时候调用drawRect?
CGGraphicsContext:我知道这样做的目的是什么并且理解这个概念,但我无法确切地看到它是如何工作的。例如:
CGContextSaveGState(context);
CGContextAddRect(context, rect);
CGContextClip(context);
CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0);
CGContextRestoreGState(context);
上面的代码在我的应用程序中并且工作正常。让我感到困惑的是它是如何工作的。保存/恢复上下文的想法是有道理的,但看起来我实际上是在保存一个上下文,使用完全相同的上下文进行更改,然后再次恢复相同的上下文。好像我正在保存一个上下文,然后在该上下文之上编写,只是为了恢复它。它是如何被保存到当你恢复它时,它是一个不同于刚刚用于进行更改的上下文实例?您在每种情况下都使用相同的变量上下文引用。
最后,我会感谢任何关于使用 Core Graphics 的实践项目或示例的资源。我正在寻求提高我在这方面的技能,因为我目前显然没有太多东西。