动态 UIBezierPath

Dynamic UIBezierPath

我想让 Dynamic UIBezierPath 看起来像下面的视频一样发生变化

Example of Dynamic BezierPath

我首先尝试制作一个点数组并在它们之间画线然后更改我数组中的点改变路径但它没有给我完美的视图

for (int i=0; i<frame.size.width; i++)
        {
            [_screenPoints addObject:[NSValue valueWithCGPoint:CGPointMake(i, height)]];

        }

任何人都可以告诉我如何制作这样的东西吗?

您可以使用 CAShapeLayer 和 CGPath 执行您描述的操作。然后您创建一个 CABasicAnimation 来动画化 CGPath 的变化。

(CGPath 是 UIBezierPaths 的核心基础对象。如果您不习惯使用 CGPath 对象,您可以从 UIBezierPath 获取 CGPath。)

动画化路径变化的诀窍是路径需要在动画前后保持相同数量和类型的控制点。因此,在您发布的游戏视频中,您会将路径分成固定数量的线段(假设为 5 条线段)。当这条线是直线时,它仍然是一组连接的 5 条线段,它们构成了一条直线。然后将其动画化为不同的形状,您只需移动路径中的控制点即可。