我有以下代码来运行一些帧的动画。
这是我第一次使用CAKeyframeAnimation,目前它已经很好地运行着。我唯一的问题是如果将重复计数设置为HUGE_VALF,如何打破循环。在这方面,API文档似乎没有太多帮助,因为如果我搜索“setRepeatCount”,它将返回空值。同时,虽然代码是针对Cocoa应用程序的,但我也会在iOS上打开此主题,因为就这个主题而言,OS X和iOS之间几乎没有区别。
- (void)setAnimation {
/* creating a layer */
CALayer *layer = [[CALayer alloc] init];
[layer setBounds:self.bounds];
[layer setPosition:NSMakePoint(CGRectGetMidX(self.bounds),CGRectGetMidY(self.bounds))];
[self.layer addSublayer:layer];
/* creating frames */
NSArray *array = [appDelegate getAnimationFrames]; // Extracting an array containing NSImage objects from appDelegate
/* setting up animation */
keyFrameAnimation = [CAKeyframeAnimation animation]; // A CAKeyframeAnimation object declared in the header file
[keyFrameAnimation setKeyPath:@"contents"];
[keyFrameAnimation setValues:array];
[keyFrameAnimation setCalculationMode:@"discrete"];
[keyFrameAnimation setRemovedOnCompletion:NO];
[keyFrameAnimation setRepeatCount:HUGE_VALF];
keyFrameAnimation.duration = 1.0;
[layer addAnimation:keyFrameAnimation forKey:nil];
}
这是我第一次使用CAKeyframeAnimation,目前它已经很好地运行着。我唯一的问题是如果将重复计数设置为HUGE_VALF,如何打破循环。在这方面,API文档似乎没有太多帮助,因为如果我搜索“setRepeatCount”,它将返回空值。同时,虽然代码是针对Cocoa应用程序的,但我也会在iOS上打开此主题,因为就这个主题而言,OS X和iOS之间几乎没有区别。
谢谢。