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

CAShapeLayer のパス プロパティとして CGPath をマスクに設定しているため、Crop a CAShapeLayer を参照して、外部パスその答えを取得する必要があります。

于 2012-06-06T21:07:51.113 に答える