Objective c 画一个有洞的形状?

Objective c 画一个有洞的形状?,objective-c,cgpath,quartz-core,Objective C,Cgpath,Quartz Core,如何使用QuartzCore绘制带有孔的形状 以下是一个例子: 我已经了解如何绘制路径: CGMutablePathRef maskPath = CGPathCreateMutable(); CGPathMoveToPoint(maskPath, NULL, x1, y1); CGPathAddLineToPoint(maskPath, NULL, x2, y2); CGPathAddLineToPoint(maskPath, NULL, x3, y3); CGPathCloseSubpath

如何使用QuartzCore绘制带有孔的形状

以下是一个例子:

我已经了解如何绘制路径:

CGMutablePathRef maskPath = CGPathCreateMutable();
CGPathMoveToPoint(maskPath, NULL, x1, y1);
CGPathAddLineToPoint(maskPath, NULL, x2, y2);
CGPathAddLineToPoint(maskPath, NULL, x3, y3);
CGPathCloseSubpath(maskPath);
并将其应用于UIView:

CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = viewToMask.bounds;
maskLayer.path = maskPath;
viewToMask.layer.mask = maskLayer;
但我不完全确定如何创建一条中心有洞的路径。
我是否需要从路径中减去,也许?

既然您将CGPath设置为CAShapeLayer的路径属性作为掩码,您应该查看和

我不确定这是否回答了我的问题。如果这是正确的做法,有人能在这里详细说明这个答案吗?也可能是一个复制品,因为这个形状被用来制作一个CAShapeLayer面具