掩盖基于CGRect的UIView

Pio*_*otr 2 cocoa-touch core-graphics uikit uiview quartz-2d

请看图片: 在此输入图像描述

我有UIView和CGRect.我必须检查CGRect覆盖UIView的位置,然后在与"交叉""对立"的区域上设置掩码.所以它是图像中的蓝色部分.怎么实现呢?我知道有CGContextClipToMask但我不知道如何使用它 - 有人可以用示例代码帮助我吗?是CGContextClipToMask的好方向吗?

谢谢!

Evg*_*kov 5

您可以将遮罩层指定给UIView的图层.

CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
view.layer.mask = maskLayer;

CGPathRef path = CGPathCreateMutable();
// Construct path and set it.
[maskLayer setPath:path];
CGPathRelease(path);

[maskLayer release];
Run Code Online (Sandbox Code Playgroud)

文档:CALayer参考