小牛队的问题:窗口上的CAKeyframeAnimation没有动画



自从我为10.8开发应用程序以来,我一直在努力将其适应小牛队。到目前为止,我发现了各种我似乎无法解决的问题。其中之一与类似NSPopover的动画有关。

我有一个窗口,我用这种方式制作动画:

_zoomWindow.alphaValue = 0;
[_zoomWindow orderFront: self];
// Configure bouncing animation
CAKeyframeAnimation* frameAnim = [CAKeyframeAnimation animation];
[frameAnim setTimingFunction: [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut]];
[frameAnim setValues: @[[NSValue valueWithRect: startFrame], [NSValue valueWithRect: overshootFrame], [NSValue valueWithRect: endFrame]]];
[frameAnim setDuration: duration];
[frameAnim setDelegate: self];
[_zoomWindow setAnimations: @{@"frame": frameAnim}];
// Configure alpha animation
[NSAnimationContext beginGrouping];
[[NSAnimationContext currentContext] setDuration: duration];
[[_zoomWindow animator] setAlphaValue: 1.0];
[[_zoomWindow animator] setFrame: endFrame display: YES];
[NSAnimationContext endGrouping];

这在10.8上运行得很好!但它在10.9上没有任何作用。我是不是遗漏了什么?

我想明白了。结果是,它在令人惊讶地设置动画时没有显示任何内容,所以一开始我以为它根本没有设置动画。事实证明,问题完全出现在我代码的另一部分:我正在制作动画的窗口有我自己的子类内容视图,而该视图正在进行一些自定义绘制。真正的问题是,视图在10.9上没有绘制任何内容,尽管它在10.8上绘制……一旦我解决了绘制问题,动画就完美地工作了。

相关内容

  • 没有找到相关文章

最新更新