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