Ладно, я просто повторю еще раз:
Я анимирую значение пути заполненного, но не обведенного CAShapeLayer, и я хотел бы сделать его анимацию более плавной. Вот основной код анимации:
CABasicAnimation * pathAnimation = [CABasicAnimation animationWithKeyPath:@"path"];
pathAnimation.toValue = (id)targetPath.CGPath;
pathAnimation.fromValue = (id)shapePath.CGPath;
//pathAnimation.fromValue = (id)((CAShapeLayer*)[currentShapeLayers objectForKey:key]).path;
pathAnimation.repeatCount = 0;
pathAnimation.duration = animationTime;
pathAnimation.autoreverses = NO;
[[currentShapeLayers objectForKey:key] addAnimation:pathAnimation forKey:@"animatePath"];
Эх, нормально работает. Но дорожки имеют странную форму и динамичную форму. Я попытался убедиться, что количество точек всегда одинаково между путями, и это помогает. Но я все еще получаю анимацию частей путей, которые я не хочу анимировать. На самом деле то, что я хотел бы сделать, это сохранить часть пути статической, в то время как остальная часть пути вырастает из одной стороны или сжимается обратно в нее или, в некоторых случаях, отделяется от основного пути в отдельный подпуть.
Я думал найти промежуточные этапы пути и сначала анимировать их, а затем закончить анимацию оттуда, но я чувствую, что может быть другое решение.