Анимация CAShapeLayer при перемещении его родительского UIView через свойство center - PullRequest
0 голосов
/ 17 ноября 2010

Обновление:

Здесь нет проблем.Оказывается, я заново добавлял анимацию каждый раз, когда перемещал точку.Был еще где-то в коде, и я просто полностью замять это.Пожалуйста, проигнорируйте этот вопрос.

end update

У меня есть UIView, который просто действует как контейнер для UIImageView и CAShaperLayer.Слой формы рисует круг, и я добавил анимацию пути к этому слою формы, чтобы сделать его импульсным.Я хочу иметь возможность пульсировать круг и одновременно перемещать вид контейнера, используя свойство center UIView.Однако, когда я устанавливаю свойство center в контейнере UIView, импульсная анимация возобновляется с самого начала независимо от того, где она находится в анимации.

Как предотвратить повторный запуск анимации импульса?

Анимация импульса:

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;

1 Ответ

0 голосов
/ 17 ноября 2010

См. Обновление выше.Оказывается, здесь не было никаких проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...