【发布时间】:2012-04-27 07:59:08
【问题描述】:
我创建了 2 个NSAnimation 用另一个视图翻转视图的对象。我想同时运行 2 个这些动画。我不能使用NSViewAnimation,因为它现在是关于为任何视图属性设置动画。
这里是动画创作:
self.animation = [[[TransitionAnimation alloc] initWithDuration:1.0 animationCurve:NSAnimationEaseInOut] autorelease];
[self.animation setDelegate:delegate];
[self.animation setCurrentProgress:0.0];
[self.animation startAnimation];
我尝试链接 2 个动画,但可能由于某种原因它不起作用。我举了一个例子: Apple developer site
将NSAnimation 对象配置为使用NSAnimationNonblocking 根本不会显示任何动画...
编辑:第二个动画与第一个动画完全相同,并在创建第一个动画的同一位置创建。
TransitionAnimation 是NSAnimation 的子类,其中setCurrentProgress 如下所示:
- (void)setCurrentProgress:(NSAnimationProgress)progress {
[super setCurrentProgress:progress];
[(NSView *)[self delegate] display];
}
在这种情况下,delegate 是 NSView,它在其 drawRect 函数中将与时间相关的 CIFilter 应用于 CIImage。问题是它同步运行,第二个动画在第一个动画结束后立即开始。有没有办法同时运行它们?
【问题讨论】:
-
第二个动画在哪里?以及在哪些方面没有奏效?
标签: objective-c cocoa osx-lion core-image nsanimation