2010-11-07 44 views
0

我有一个CALayer与我已经添加到我的视图的基础层的自定义绘制方法。我将needsDisplayOnBoundsChange设置为NO。但是,当我调整父视图的框架时,图层的drawInContext:会不断调用。我希望内容在调整大小时进行缩放。任何线索?如何防止CALayer重新绘制其绑定更改?

回答

1

有趣的是,我有一个CALayer正确缩放其内容的情况,直到我调用setNeedsDisplay来重绘它的内容为止。有一件事情可能会有所不同,就我而言,图层是由其委托而不是由CALayer的子类绘制的。另一件可能不同的事情是,这是在iOS上,而不是OSX(我不知道你在这种情况下使用了哪种)。子类和委托绘制图层和/或iOS和OSX之间可能存在行为差异。

另一件需要注意的是,needsDisplayOnBoundsChange被默认记录为NO,所以不需要设置它。我没有特别设置needsDisplayOnBoundsChange在我的图层上。

您可以尝试使用委托进行绘图以查看是否有所作为。请注意,UIView不能成为CALayer的委托。在我的情况下,我做了一个简单的委托对象,将绘制调用转发给我的视图。

相关问题