objective-c - 如何在 Objective C 中绘制一条动画?

标签 objective-c uibezierpath cgpoint uianimation cashapelayer

我正在尝试对绘制的对象进行动画处理,例如我用这种方法画了一条线:

    UIBezierPath *path = [UIBezierPath bezierPath];
    [path moveToPoint:CGPointMake(Center.x, Center.y)];
    [path addLineToPoint:CGPointMake(Point.x,Point.y)];

    CAShapeLayer *shapeLayer = [CAShapeLayer layer];
    shapeLayer.path = [path CGPath];
    shapeLayer.strokeColor = [[UIColor whiteColor] CGColor];
    shapeLayer.lineWidth = 1.5;
    shapeLayer.fillColor = [[UIColor clearColor] CGColor];

    [self.view.layer addSublayer:shapeLayer];

过了一段时间,我需要对线条进行动画处理,使其具有不同的Point,但保持Center不变,但我不知道该怎么做。我的做法还好吗?有更好的方法吗?

最佳答案

解决了:

    CABasicAnimation *morph = [CABasicAnimation animationWithKeyPath:@"path"];
    morph.duration = 1.0;
    UIBezierPath *path5 = [UIBezierPath bezierPath];
    [path5 moveToPoint:CGPointMake(P22.x+5, P22.y+5)];
    [path5 addLineToPoint:CGPointMake(P21.x,P21.y)];
    morph.fromValue = (id) path.CGPath;
    morph.toValue = (id) path5.CGPath;

    [shapeLayer addAnimation:morph forKey:nil];

    //next line to update the shapeLayer's new path
    shapeLayer.path = path5.CGPath;

关于objective-c - 如何在 Objective C 中绘制一条动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26141621/

相关文章:

ios - 使用现有路径为 UIView 创建掩码?

ios - 在绘图应用程序上绘制第一个点?

iphone - 如何为 CGPoint 线赋予独特的颜色 Xcode

ios - 将 editingAccessoryType 设置为 UISwitch

ios - 如何同时在2个UITextField中输入文本

ios - 获取 UIBezierPath 的所有顶点

ios - 清除现有的绘制线并替换为新线 bezierpath

ios - 使用 IF 语句设置 UIView 的位置

objective-c - 您可以为plist文件定义自定义枚举类型吗?

objective-c - 如何将自定义对象的 NSArray 存档到 Objective-C 中的文件