2

如何使用 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;

但我不完全确定如何创建一条中心有洞的路径。我是否需要以某种方式从路径中减去,也许?

4

1 回答 1

3

由于您将 CGPath 设置为 CAShapeLayer 的路径属性作为掩码,因此您应该查看Crop a CAShapeLayer retrieving the external path及其答案

于 2012-06-06T21:07:51.113 回答