gpt4 book ai didi

ios - CAKeyframeAnimation - 停止无限循环

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:57:45 26 4
gpt4 key购买 nike

我有以下代码行来运行带有某些帧的动画。

- (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 之间几乎没有区别。

谢谢。

最佳答案

一旦将动画添加到图层,图层就会创建一个副本,因此对动画对象的进一步更改不会执行任何操作。

您可以使用[layer removeAllAnimations] 来停止动画。

关于ios - CAKeyframeAnimation - 停止无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32598225/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com