更新:
这里没有问题。结果我每次移动点都重新添加动画。在代码中的其他地方,我只是完全掩盖了它。请忽略这个问题。
结束更新
我有一个UIView,它只是作为UIImageView和CAShaperLayer的容器。形状图层正在绘制一个圆形,我已经为该形状图层添加了一个路径动画以使其成为脉冲。我希望能够使用UIView的center属性同时脉冲圆圈并移动容器视图。但是,当我在容器UIView上设置center属性时,无论它在动画中的位置如何,脉冲动画都会从它开始重新开始。
如何阻止脉冲动画重启?
脉冲动画:
CGRect startRect = CGRectMake(-10 + (self.bounds.size.width / 2),
-10 + (self.bounds.size.height / 2),
20,
20);
CGMutablePathRef fromPath = CGPathCreateMutable();
CGPathAddEllipseInRect(fromPath, NULL, startRect);
CGRect endRect = CGRectMake(-20 + (self.bounds.size.width / 2),
-20 + (self.bounds.size.height / 2),
40,
40);
CGMutablePathRef toPath = CGPathCreateMutable();
CGPathAddEllipseInRect(toPath, NULL, endRect);
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"path"];
animation.fromValue = (id)fromPath;
animation.toValue = (id)toPath;
CGPathRelease(fromPath);
CGPathRelease(toPath);
animation.duration = 2.0f;
animation.repeatCount = HUGE_VALF;
[self.myCircleLayer addAnimation:animation forKey:self.pathAnimationKey];
我通过执行以下操作来移动容器视图:
self.myContainerView.center = newPoint;
答案 0 :(得分:0)
请参阅上面的更新。事实证明这里没有问题。