4

我有一个我想要动画的 NSView,但是 NSView 里面有一个 NSTableView,当视图是图层支持时它不会显示正确的(这反过来又是动画视图所必需的)。所以我的答案是在动画之前让视图层支持,然后在动画完成后移除层,如下所示:

[animatingView setWantsLayer: YES];

[NSAnimationContext beginGrouping];

[[animatingView animator] animateSomething];

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

[NSAnimationContext endGrouping];

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

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

4

1 回答 1

2

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

我建议您尝试使您的 NSTableView 成为 layer-backed view 的兄弟,而不是孩子。

于 2013-04-01T17:19:45.913 回答