2009-07-29 42 views
3

我有一个非常简单的CA演示。它使用图像文件创建一个包含内容的图层,并显示该图像。在窗口中单击时,它会使用隐式动画将图像平滑移动到鼠标点。这工作正常,运行完美光滑。但是,随着窗户变大,平滑度变差。低于屏幕尺寸的75%左右是可以接受的。通过最大化的窗口或全屏模式,它非常粗糙和不平整。CoreAnimation生涩的大窗口

我在Intel Mac Mini上运行OSX 10.5.7。它有一个英特尔GMA950 GPU。我的屏幕是1920 x 1200.

我根本没有drawRect方法。一切都是通过使用隐式动画设置CALayer的位置属性来实现的。

我有权怀疑硬件有问题吗?

尼尔·贝利斯

回答

0

您的硬件仅仅是罚款,并能 - 实施缺乏。

您不允许动画或甚至触摸位置属性。该属性由视图处理,如果支持层。不是你。并在很多场合重新计算。所以如果你开始动画并改变那个属性,那就会有麻烦。至少根据苹果...

这里摘录

据苹果 - > 要动态更改在OS X中的层支持的观点,最好是使用视图自身的接口。如果有的话,您应该很少直接修改附加到您的某个图层支持的NSView对象的图层。 AppKit负责创建和配置这些图层对象并在您的应用运行时管理它们。修改图层可能会导致图层与视图对象不同步,并可能导致意外的结果。对于层支持的观点,你的代码绝不能修改图层对象的下列任一属性: •anchorPoint •范围 •compositingFilter •过滤器 •帧 •geometryFlipped •隐藏 •位置 •则shadowColor • shadowOffset •shadowOpacity •shadowRadius •变换