CGContext addPath 到当前路径

CGContext addPath to current path

我对 CGContextRefaddPath() API 感到困惑。 API 文档说

如果源路径非空,则其路径元素按顺序追加到当前路径上。 当前变换矩阵 (CTM) 在将它们添加到路径之前应用于这些点。 调用完成后,路径的起点和当前点为路径中最后一个子路径的起点和当前点。

我在想它会向已经在上下文中绘制的现有路径添加一个新的子路径。但它的行为似乎并不如此。如果我真的要将子路径附加到现有的绘制路径,我该如何实现?

如果您已经描边(或填充)了路径,则在此上下文中没有当前路径。一旦您描边或填充它,上下文的当前路径就会被清除。

If I were to actually append a subpath to the existing drawn path, how do I achieve it?

你不能。描边或填充后没有“绘制路径”;只有像素。您需要重新开始了解您绘制的路径。这就是CGPath和CGMutablePath存在的原因,这样你可以在绘制路径之前保存一个路径的副本,并在以后修改它。