我有一个我想要动画的NSView,但是NSView有一个NSTableView,当视图是图层支持时,它不会显示correclty(这反过来又是动画视图的必要条件)。所以我的答案是在动画制作之前使视图层支持,然后在动画完成后删除图层,如下所示:
[animatingView setWantsLayer: YES];
[NSAnimationContext beginGrouping];
[[animatingView animator] animateSomething];
[[NSAnimationContext currentContext] setCompletionHandler: ^{
[animatingView setWantsLayer: NO];
}];
[NSAnimationContext endGrouping];
但是,使用此代码,视图根本不具有动画效果。我发现如果我删除了[animatingView setWantsLayer: NO];
行,它会动画恰到好处,但表格视图无法正确显示(有关其中一个问题的示例,请参阅this问题)。
所以,我的问题是:我该如何解决这个问题?我想为视图设置动画,但我希望表格能够正确显示,并且此解决方法不起作用。我不明白为什么......
答案 0 :(得分:2)
一旦你支持NSView层支持,它就无法恢复。
我建议你尝试让你的NSTableView成为支持图层的视图的兄弟,而不是孩子。