ios - 多个UIBezierPath拼接起来的运动轨迹,在执行动画的时候,动画出现卡顿,
ringa_lee
ringa_lee 2017-04-17 13:28:44
0
1
599

要实现动画的所设置的路径代码:

- (void)drawRect:(CGRect)rect {

    UIColor *color = [UIColor redColor];
    [color set];
    _aPath = [UIBezierPath bezierPath];
        [_aPath addArcWithCenter:CGPointMake(self.center.x, self.center.y-50) radius:50 startAngle:M_PI_2 endAngle:M_PI*2.f*3/4 clockwise:YES];
        [_aPath addArcWithCenter:CGPointMake(self.center.x, self.center.y) radius:100 startAngle:-M_PI_2 endAngle:M_PI*2.f*3/4 clockwise:YES];
        [_aPath addArcWithCenter:CGPointMake(self.center.x, self.center.y) radius:100 startAngle:-M_PI_2 endAngle:M_PI*2.f*3/4/3 clockwise:YES];
        [_aPath addArcWithCenter:CGPointMake(self.center.x, self.center.y+50) radius:50 startAngle:M_PI_2 endAngle:M_PI*2.f*3/4 clockwise:YES];

    _aPath.lineWidth = 5.0;
    _aPath.lineCapStyle = kCGLineCapRound; //线条拐角
   _aPath.lineJoinStyle = kCGLineCapRound; //终点处理
    [_aPath stroke];
}

下面的是我执行动画代码:

CAKeyframeAnimation *keyframeAnimation=[CAKeyframeAnimation animationWithKeyPath:@"position"];
    keyframeAnimation.path = dr.aPath.CGPath;
    keyframeAnimation.repeatCount=1;
    keyframeAnimation.removedOnCompletion = NO;
    keyframeAnimation.fillMode = kCAFillModeForwards;
    keyframeAnimation.duration = 4.0f;
    keyframeAnimation.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    keyframeAnimation.delegate=self;
    [imageView.layer addAnimation:keyframeAnimation forKey:nil];
ringa_lee
ringa_lee

ringa_lee

reply all(1)
Ty80

When executing the animation, the animation is stuck

If "stuck" means it stops in the middle, it's because of the interpolation method. The default interpolation method is kCAAnimationLinear, and the keyframes are connected in a straight line for interpolation. If you want the animation to proceed continuously, you can simply add:

keyframeAnimation.calculationMode = kCAAnimationPaced;

If you have more precise requirements, you can use keyTimes and timingFunctions to control it yourself.

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template