0

现在我这样做:

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);

我想要有不同的状态,所以我可以回到它们。我现在的做法,好像只能存一个。我需要多个上下文吗?我猜是这样,但我不确定最好的方法是什么。我刚接触可可,无论如何,我想我会问!谢谢!

4

2 回答 2

1

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

于 2013-03-29T01:31:33.883 回答
1

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

于 2013-03-29T03:53:43.877 回答