Cocoa 核心动画动作转换:如何正确操作
我做了一个测试项目,在主窗口的内容视图中有一个视图。窗口有两个按钮:显示和消失。我希望在按下“显示”按钮时设置视图外观的动画,并在按下“消失”按钮时设置消失的动画。我想用图层动作来实现这一点。 换句话说,每次从superview添加或删除视图时,我都要制作动画。所以,在代码中,我只想编写[parent addSubview:view]或[view removeFromSuperview],动画应该在这一刻起作用。因此,分层操作似乎适合我的需要 以下是应用程序截图和(XCode 4.6): 以下是我所做的: 我创建了一个视图,该视图将显示/消失并添加图层动作:Cocoa 核心动画动作转换:如何正确操作,cocoa,core-animation,Cocoa,Core Animation,我做了一个测试项目,在主窗口的内容视图中有一个视图。窗口有两个按钮:显示和消失。我希望在按下“显示”按钮时设置视图外观的动画,并在按下“消失”按钮时设置消失的动画。我想用图层动作来实现这一点。 换句话说,每次从superview添加或删除视图时,我都要制作动画。所以,在代码中,我只想编写[parent addSubview:view]或[view removeFromSuperview],动画应该在这一刻起作用。因此,分层操作似乎适合我的需要 以下是应用程序截图和(XCode 4.6): 以下
_coloredView = [[ColoredView alloc] initWithFrame:NSMakeRect(0, 0, 200, 200)];
_coloredView.bgColor = [NSColor yellowColor];
_coloredView.wantsLayer = YES;
// making appear transition from left
CATransition *appearTransition = [CATransition animation];
[appearTransition setDuration:2];
[appearTransition setType:kCATransitionPush];
[appearTransition setSubtype:kCATransitionFromLeft];
[_coloredView.layer addAnimation:appearTransition forKey:kCAOnOrderIn];
然后单击“显示”按钮时,我调用
[contentView addSubview:self.coloredView];
单击“消失”时,我调用:
[self.coloredView removeFromSuperview];
似乎有些事情是可行的。黄色矩形将第一次显示为它应该显示的样子。但是,下面列出了一些非常奇怪的事情:
addAnimation:forKey:
,因为在第一次出现之后,动画将不再工作@“子视图”
而不是kCAOnOrderIn