如何在可可/石英中保存和恢复多个上下文?



现在我这样做:

CGContextRef context = NULL;
context = [[NSGraphicsContext currentContext] graphicsPort];
[see if I need to restore]
[if so]
CGContextRestoreGState(context);
[do transformations and draw some stuff]
[save the current state]
CGContextSaveGState(context);

我想拥有各种状态,以便我可以回到它们。我现在的做法,似乎只能存储一个。我是否需要多个上下文?我猜是这样,但我不确定最好的方法是什么。我刚进入可可,无论如何,我想我会问!谢谢!

使用 CGContextSaveGState/CGContextRestoreGState ,可以保存多个图形状态。CGContextSaveGState的文档说"每个图形上下文都维护一个图形状态堆栈。

听起来您可能希望实现撤消管理器而不是保存不同的状态。在这个应用程序SimpleDrawing中,有一个使用石英与撤消管理器和上下文的很好的例子。

最新更新