支持图层的NSView动画

时间:2013-03-23 20:26:04

标签: objective-c cocoa core-animation nstableview

我有一个我想要动画的NSView,但是NSView有一个NSTableView,当视图是图层支持时,它不会显示correclty(这反过来又是动画视图的必要条件)。所以我的答案是在动画制作之前使视图层支持,然后在动画完成后删除图层,如下所示:

[animatingView setWantsLayer: YES];

[NSAnimationContext beginGrouping];

[[animatingView animator] animateSomething];

[[NSAnimationContext currentContext] setCompletionHandler: ^{
    [animatingView setWantsLayer: NO];
}];

[NSAnimationContext endGrouping];

但是,使用此代码,视图根本不具有动画效果。我发现如果我删除了[animatingView setWantsLayer: NO];行,它会动画恰到好处,但表格视图无法正确显示(有关其中一个问题的示例,请参阅this问题)。

所以,我的问题是:我该如何解决这个问题?我想为视图设置动画,但我希望表格能够正确显示,并且此解决方法不起作用。我不明白为什么......

1 个答案:

答案 0 :(得分:2)

一旦你支持NSView层支持,它就无法恢复。

我建议你尝试让你的NSTableView成为支持图层的视图的兄弟,而不是孩子。