隐含地表现良好。但是,当我尝试使用显式动画在单个图层上进行多个动画(例如不透明度和翻译)时,我得到的结果很奇怪。
首先,我尝试使用CATransaction。然后我切换到CAAnimationGroup。两者似乎都没有得到我想要的。
我想要什么?
我想要的只是将一层从一个点移动到另一个具有初始不透明度和目标不透明度的点。而已!
我在看什么?
这是一个例子
执行事务开始/提交时,翻译似乎正确,但不透明性不正确。我的初始不透明度为0,目标不透明度为0.5。
但是,当我运行动画时,它会混合到0.5,然后“快照”到1.0(完全不透明)。
我尝试将removeOnCompletion设置为NO。但这也没有帮助。
我认为最重要的是,我需要了解AnimationGroup和Transaction之间的区别。
有人能解释一下吗?关于动画的奇特之处,我可能会看到什么?
谢谢!
最佳答案
好的,没有动画为我工作。
我尝试为(图层)的不透明度创建基本动画。我将其放置在动画组中。当我执行时,什么也没发生。为简单起见,我取出了翻译动画。这只是尝试做不透明度动画。
CAAnimationGroup *group = [CAAnimationGroup animation];
CABasicAnimation *opacityAnimation;
opacityAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
opacityAnimation.fromValue = [NSNumber numberWithDouble:fromalpha];
opacityAnimation.toValue = [NSNumber numberWithDouble:toalpha];
opacityAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
opacityAnimation.delegate = self;
opacityAnimation.duration = 2.7;
opacityAnimation.removedOnCompletion = NO;
group.animations = [NSArray arrayWithObjects: opacityAnimation, nil];
[baseLayer addAnimation:group forKey:@"groupAnim"];
关于core-animation - CALayer显式动画的行为异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1339132/