最佳答案
我在其-draInContext: 方法中得到了一个包含一些复杂绘图代码的图层。我试图最小化我需要做的绘图量,所以我使用-setNeedsDisplayInRect: 来更新已更改的部分。效果非常好。然而,当图形系统更新我的图层时,它正在使用交叉渐变从旧图像过渡到新图像。我希望它能立刻切换。
我尝试过使用 CATransaction 关闭操作并将持续时间设置为零,但这两种方法都不起作用。下面是我使用的代码:
[CATransaction begin];
[CATransaction setDisableActions: YES];
[self setNeedsDisplayInRect: rect];
[CATransaction commit];
在 CATransaction 上我是否应该使用不同的方法(我还尝试了-setValue: forKey: with kCATransactionDisableActions,结果相同)。