Мой код не работает.Почему CAKeyframeAnimation не появилась после создания?
- (CAKeyframeAnimation *)createAnimation {
CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"path"];
//does the @"path" mean the path I created below ? or path on some layer?
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, width-100, 0);
CGPathAddQuadCurveToPoint(path, NULL, width+100, 300, width-100, height);
CGPathAddQuadCurveToPoint(path, NULL, width+20, 220, width-100, height);
CGPathAddQuadCurveToPoint(path, NULL, width+50, 230, width-100, height);
// …… more code
animation.path = path;
animation.repeatCount = 10;
animation.delegate = self;
animation.duration = 2;
CGPathRelease(path);
return animation;
}
Это моя анимация. Я реализую делегата animationDidStart
и didStop
. Эта анимация выполнена.
Затем я добавляю эту анимацию к таможне CALayer
. Я намерен анимировать один путь на слое. Это код для слоя:
dragLayer = [[CAShapeLayer alloc] init];
dragLayer.frame = CGRectMake(0, 0, width, height);
dragLayer.path = [self pathToAnimateWithX:0 andY:0]; // custom method to create CGPathRef
dragLayer.fillColor = appColor.CGColor;
dragLayer.strokeColor = [UIColor redColor].CGColor ;
dragLayer.lineWidth = 5;
[self.layer addSublayer:dragLayer];
[dragLayer addAnimation:[self createAnimation] forKey:@"uposuuuition"];
Я думал, что проблема заключается в том, что анимированный пути не имеет цвета, и я не знаю, как добавить к нему после долгих поисков (включая документацию яблока).
Другая проблема заключается в том, как анимировать собственный путь dragLayer вместо его воссоздания.
UPDATE: Я снова прочитал документацию и CAKeyframeAnimation, кажется, неправильный способ сделать it.I есть найти другой способ сделать it.thanks
@manman спасибо, что moved.But я хочу, чтобы оживить форму пути, не в положении, как я могу это сделать – xxkkk
ли вы имеете в виду что-то вроде [этот ответ] (HTTP: //stackoverflow.com/questions/9762236/how-to-animate-coregraphics-drawing-of-shape-using-cakeyframeanimation)? – manman
Можете ли вы уточнить, что вы пытаетесь сделать? Вам нужно оживить переход от одного пути к другому или просто оживить рисунок пути, как если бы он рисовался пером? –