cocoa - CoreAnimation 带有大窗口的生涩

标签 cocoa core-animation

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

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

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

我怀疑这里的硬件有问题吗?

尼尔·贝利斯

最佳答案

您的硬件很好而且功能强大 - 缺乏实现。

您不得设置动画,甚至不得触摸位置属性。如果有图层支持,则该属性由 View 处理。不是你。并多次重新计算。因此,如果您开始设置动画并更改该属性,就会遇到麻烦。至少根据苹果公司的说法......

这里摘录

据苹果公司称 -> 要在 OS X 中对层支持的 View 进行动画更改,最好使用 View 本身的接口(interface)。您应该很少(如果有的话)直接修改附加到图层支持的 NSView 对象之一的图层。 AppKit 负责创建和配置这些层对象,并在应用程序运行时管理它们。修改图层可能会导致其与 View 对象不同步,并可能导致意外结果。对于图层支持的 View ,您的代码绝对不能修改图层对象的以下任何属性: • anchor • 界限 • 合成过滤器 • 过滤器 • 框架 • 几何翻转 • 隐藏 • 位置 • 阴影颜色 • 阴影偏移 • 阴影不透明度 • 阴影半径 • 变换

关于cocoa - CoreAnimation 带有大窗口的生涩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1197484/

相关文章:

macos - 拖动 NSStackView 中的 View 以重新排列顺序

objective-c - 如何将 XML 文档加载到 NSTableView 中?

ios - CAShapeLayer 动画的完成 block

iphone - 我们怎样才能让 kCAOnOrderOut 工作呢?

ios - 为什么围绕 x 轴平移 CALayer 会影响围绕 Y 轴的旋转

objective-c - 在 Cocoa 中添加一个新窗口

cocoa-touch - Cocoa/Cocoa Touch UI 元素的图像存储在哪里?

ios - Foundation.framework是属于CoreService层还是CocoaTouch层?

ios - 通过跳跃将 UIView 移动到 x 位置

ios - 动画持续时间 :delay:options:animations:completion: blocking UI when used with UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse