0

コア グラフィックを使用して、長方形から円形を削除しようとしています。丸穴(舷窓みたいな)から見えるように

私は広範囲に検索し、ここで提供されている回答を利用しようとしましたCore Graphics, how to draw a Rectangle with an ellipse transparent hole? しかし、私はそれを機能させることができません。私がやっていることは、長方形の上に円を描くことだけです。これが私が最終的に得たコードです。助けてくれてありがとう

- (void)drawRect:(CGRect)rect{
CGContextRef context = UIGraphicsGetCurrentContext();
// Set color to red
CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0);
// Add rectange
CGContextAddRect(context, rect);
// Fill rectange
CGContextFillRect(context, rect);

// Create a elipse to be removed from rectange

CGMutablePathRef cutoutRect = CGPathCreateMutable();
CGPathAddRect(cutoutRect, NULL, rect);
CGPathAddEllipseInRect(cutoutRect, NULL, CGRectMake(self.bounds.size.width / 4, self.bounds.size.height / 4, self.bounds.size.width / 2, self.bounds.size.width / 2));

CGContextAddPath(context, cutoutRect);
CGContextSetRGBFillColor(context, 1.0, 1.0, 0.0, 1.0);
CGContextEOFillPath(context);

//Remove the elipse

CGContextEOClip(context);
}
4

1 に答える 1

3

使用する前CGContextEOFillPathに、長方形のパスを 1 つ、楕円のパスを 1 つ追加する必要があります。ここでは、2 つの形状が 1 つのパスで混同されていますが、これは機能しません。

そしてところで、あなたの最後のCGContextEOClip電話は役に立たない.

于 2013-07-04T08:34:06.730 に答える