【问题标题】:Animate transformation from a line to a curve从直线到曲线的动画转换
【发布时间】:2014-08-20 08:08:38
【问题描述】:

我在绘制动画反弹曲线时遇到了问题。 下面的代码允许为线条设置动画效果,但是在弯曲时我不想看到直线。我的代码做错了吗?非常感谢任何评论或指导。

干杯

- (void)loadView
{
    //up Path
    upPath  = CGPathCreateMutable();
    CGPathMoveToPoint(upPath, nil,startingDrawPointX,startingDrawPointY);
    CGPathAddQuadCurveToPoint(upPath, nil, controlPoint.x, 100, endingDrawPointX, endingDrawPointY);
    CGPathCloseSubpath(upPath);

    //down Path
    downPath = CGPathCreateMutable();
    CGPathMoveToPoint(downPath, nil,startingDrawPointX,startingDrawPointY);
    CGPathAddQuadCurveToPoint(downPath, nil, controlPoint.x, 70, endingDrawPointX, endingDrawPointY);
    CGPathCloseSubpath(downPath);

    //mid Path
    midPath = CGPathCreateMutable();
    CGPathMoveToPoint(midPath, nil,startingDrawPointX,startingDrawPointY);
    CGPathAddQuadCurveToPoint(midPath, nil, controlPoint.x, controlPoint.y, endingDrawPointX, endingDrawPointY);
    CGPathCloseSubpath(midPath);


    //Create Shape

    shapeLayer = [CAShapeLayer layer];
//  shapeLayer.path = midPath;
    shapeLayer.fillColor = nil;
    shapeLayer.strokeColor = kDBrownTextColor.CGColor;
    shapeLayer.lineWidth = 2.0;
//  shapeLayer.fillRule = kCAFillRuleNonZero;
    [self.layer addSublayer:shapeLayer];
    [self performSelector:@selector(startAnimation) withObject:nil afterDelay:1.5];

}

-(void)startAnimation
{
    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"path"];
    animation.duration = 1;
    animation.repeatCount = maxCount;
    animation.autoreverses = YES;
    animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    animation.fromValue = (__bridge id)downPath;
    animation.fromValue =(__bridge id)midPath;
    animation.toValue = (__bridge id)upPath;
    [shapeLayer addAnimation:animation forKey:@"animatePath"];
}

【问题讨论】:

    标签: ios objective-c iphone core-animation bezier


    【解决方案1】:

    CGPathCloseSubpath 注释掉这些线条——它们正在创建你看到的直线

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-30
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-31
      • 2012-01-04
      相关资源
      最近更新 更多