gpt4 book ai didi

iphone - 为什么这个 CAKeyFrameAnimation 会以零不透明度停止?

转载 作者:行者123 更新时间:2023-12-03 20:38:29 25 4
gpt4 key购买 nike

我有这个代码。在值数组的末尾,您可以看到我提供了 0.5 的不透明度。但由于某种原因,当动画停止时,它会再次闪烁,然后使 View 完全透明。那里出了什么问题?

CALayer *layer = self.layer;
CAKeyframeAnimation *blinkAnim = [CAKeyframeAnimation animationWithKeyPath:@"opacity"];
blinkAnim.duration = 1.0;
//blinkAnim.repeatCount = 0;
blinkAnim.autoreverses = NO;

// keyframe times and values
// we want to start fully opaque, fade out, stay faded out and fade back in shortly before the end of the cycle
blinkAnim.keyTimes = [NSArray arrayWithObjects: [NSNumber numberWithFloat:0.0],
[NSNumber numberWithFloat:0.4],
[NSNumber numberWithFloat:0.6],
[NSNumber numberWithFloat:0.85],
[NSNumber numberWithFloat:1.0], nil];
blinkAnim.values = [NSArray arrayWithObjects: [NSNumber numberWithFloat:1.0],
[NSNumber numberWithFloat:1.0],
[NSNumber numberWithFloat:0.0],
[NSNumber numberWithFloat:0.0],
[NSNumber numberWithFloat:0.5], nil];
[layer addAnimation:blinkAnim forKey:nil];

最佳答案

CAAnimation 的默认 fillMode(请参阅 here )是 kCAFillModeRemoved。您应该将动画的 fillMode 设置为 kCAFillModeForwards,并将 removedOnCompletion 属性设置为 NO(默认情况下)是):

blinkAnim.removedOnCompletion = NO;
blinkAnim.fillMode = kCAFillModeForwards;

您会注意到这些属性是在我为您上一个问题编写的源代码中设置的 - 它们在那里是有原因的。

关于iphone - 为什么这个 CAKeyFrameAnimation 会以零不透明度停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1159736/

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