目的是什么:按钮单击请求 CATextLayer 对象的字符串值进行动画处理,直到被另一个按钮单击请求停止。有两个单独的按钮负责这些操作,这样操作就不会混淆。
实际情况:在播放请求中,有几次textLayer的字符串没有动画,其字符串值保持不变,同时显示分配的“0”(如上图)。在这种情况下,动画永远不会被初始化并分配给 CATextLayer 对象。但是,错误并不一致。CATextLayer 对象将显示适当的字符串值时,也有几个实例。如果连续单击按钮,成功率大约是看到 CATextLayer 对象为其字符串值设置动画的 70%。是否有任何场景可以绕过 addAnimation 方法的代码行?
感谢您对问题的任何和所有帮助。提前致谢!
-(IBAction)playText:(id)sender{
//textLayer object is instantiated elsewhere in the class
textLayer.frame = CGRectMake(0, 0, 128, 16);
textLayer.fontSize = 14;
textLayer.backgroundColor = [UIColor clearColor].CGColor;
textLayer.foregroundColor = [UIColor yellowColor].CGColor;
textLayer.string = @"0";
[self.layer addSubLayer:textLayer];
CAKeyframeAnimation *textAnimation = [CAKeyframeAnimation animationWithKeyPath:@"string"];
textAnimation.values = values;
textAnimation.repeatCount = HUGE_VALF;
textAnimation.keyTimes = intervals;
textAnimation.calculationMode = kCAAnimationLinear;
textAnimation.duration = 6;
[textLayer addAnimation:textAnimation forKey:@"string"];
}
-(IBAction)stopText:(id)sender{
[textLayer removeAnimationForKey:@"string"];
}