Как изменить направление и начальную позицию CALayer
анимация?Как изменить направление анимации CALayer
Например, если анимировать форму круга, используя следующий код:
-(void)drawCircle {
CAShapeLayer *circleShapeLayer = [[CAShapeLayer alloc] init];
circleShapeLayer.path = [self circleBezierPath].CGPath;
circleShapeLayer.strokeColor = [UIColor lightGrayColor].CGColor;
circleShapeLayer.fillColor = [UIColor clearColor].CGColor;
circleShapeLayer.lineWidth = 2;
[self.view.layer addSublayer:circleShapeLayer];
CABasicAnimation *circleShapeAnimation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];
circleShapeAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
circleShapeAnimation.duration = 1.0f;
circleShapeAnimation.fromValue = @(0.0f);
circleShapeAnimation.toValue = @(1.0f);
[circleShapeLayer addAnimation:circleShapeAnimation forKey:@"strokeEnd"];
}
-(UIBezierPath *)circleBezierPath {
UIBezierPath *circlePath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(100, 100, 100, 100)];
return circlePath;
}
Анимация всегда начинается в 3 часа и анимируется в направлении по часовой стрелке.
Как заставить его начать в 12 часов (или в любом другом положении) и анимировать в против часовой стрелки?
изменить путь. Ваш путь начинается с этой точки и продолжается в этом направлении. –
Что это значит?Путь безье начинается с (x, y) = (100 100), что определенно не является местом начала анимации. Есть ли способ указать начальную точку анимации и ее направление? – Digitech