如何使用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;
但我不完全确定如何在中心创建一个有洞的路径。 我可能需要以某种方式从路径中减去吗?
答案 0 :(得分:3)
由于您将CGPath设置为CAShapeLayer的路径属性作为掩码,因此您应该查看Crop a CAShapeLayer retrieving the external path和 its answer 。