我正在尝试使用核心图形从矩形中删除圆形。这样我就可以透过圆孔看到(像舷窗一样)
我进行了广泛的搜索并尝试利用此处提供的答案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);
}