我有一个视图,当用户在上面拖动文件时,它会启动一个动画。动画显示文件的相对图标(在NSAnimation自定义类的NSImageView Ivar中)在淡入淡出时变大。
如果我在标准循环中循环动画,如下所示:
CustomAnimation *animation = [[CustomAnimation alloc] initWithDuration: 2.0 animationCurve: NSAnimationLinear]
NSimage *icon;
for (NSString *filename in filenames) {
icon = [[NSWorkspace sharedWorkspace] iconForFile: filename];
NSImageView *myImageView = [[NSImageView alloc] initWithFrame: theFrame];
[myImageView setImage: icon];
[animation setImageView: myImageView];
[animation startAnimation];
}循环太快了,而且动画看起来就像它几乎是一起发射的(显然)。
您认为控制动画开始和后续动画之间的延迟的最好方法是将动画循环多次?
发布于 2011-09-07 04:38:11
你的动画之所以失败(也许最后一个除外),是因为在每次迭代中,你都会用一个新的动画“覆盖”以前的动画。
如果这个想法是让每个动画都有完整的2秒,那么这篇关于chaining core animations的帖子应该可以做到这一点。您可以通过事件在动画之间添加间隙。
-编辑--
@Richard这是我的错误,我误解了问题。
看一看NSAnimation的文档就会发现你可以使用startWhenAnimation:reachesProgress:来链接你的动画。
发布于 2011-09-06 21:17:30
您可以使用NSTimer来实现此目的。
https://stackoverflow.com/questions/7320374
复制相似问题