UIBezierPath 填充与 CAShapeLayer

UIBezierPath fill vs CAShapeLayer

我正在尝试绘制一个简单的形状作为游戏界面的一部分,大多数教程使用 UIBezierPath 来定义 CAShapeLayer 的路径。但是,我注意到 UIBezierPath 已经有一个现有的 fill function.

这可能是一个愚蠢的问题,但是使用它和使用单独的 CAShapeLayer 来绘制路径有什么区别?还有,哪个比较好?

CAShapeLayer中的"CA"代表CoreAnimation.

如果您希望对 UIBezierPath 进行动画、移动、操作或其他任何操作,您需要使用 CALayer(或其子类 CAShapeLayer)。

UIBezierPaths 是正确的选择,如果你想要的只是 "draw" - 它通常在 draw(rect:) 中完成。如果愿意,您也可以 "redraw"。

但是,如果您想要持久(和控制)形状,请将 UIBezierPath 变成 CAShapeLayer