0
Так что я живой путь окружности как таковой (отлично работает):Текущее значение для CABasicAnimation
CGPoint center = CGPointMake([self bounds].size.width/2.0, [self bounds].size.height/2.0);
circle.path = [UIBezierPath bezierPathWithArcCenter:center
radius:radius-13 startAngle:DEGREES_TO_RADIANS(0) endAngle:DEGREES_TO_RADIANS([self percentageToAngle:100]) clockwise:NO].CGPath;
circle.fillColor = [UIColor clearColor].CGColor;
circle.strokeColor = [UIColor blackColor].CGColor;
circle.lineWidth = 27.0;
[self.layer addSublayer:circle];
float currentAngle = [(NSNumber *)[ sublayer valueForKeyPath:@"strokeEnd" ] floatValue];
CABasicAnimation *drawAnimation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];
drawAnimation.duration = 2.0;
drawAnimation.repeatCount = 0.0;
drawAnimation.removedOnCompletion = NO;
drawAnimation.fromValue = [NSNumber numberWithFloat:0.0];
drawAnimation.toValue = [NSNumber numberWithFloat:1.0];
drawAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
drawAnimation.delegate = self;
[drawAnimation setValue:kAnimationName forKey:kLayerName];
[circle addAnimation:drawAnimation forKey:kAnimationName];
Если я остановить анимацию в середине потока, как я получить текущее значение это в? Либо угол, либо просто значение между значениями fromValue и toValue?
Спасибо за ответ. Но нет, это не сработает. Я ничего не вращаю вокруг любой оси. Анимация рисует путь, который проходит по пути круга. Я пробовал аналогичную вещь с valueForKeyPath: @ "strokeEnd", но это всегда 1, независимо от того, когда я останавливаю анимацию. – user3564870
Прости, что пропущено. Я занимался исследованиями несколько часов, но не могу понять. – oddeyes