Маскирование UIView на основе CGRect

Посмотрите на изображение, пожалуйста: enter image description here

У меня есть UIView и CGRect. Я должен проверить, где CGRect накладывает UIView, а затем установить маску в области, которая "противопоставлена" пересечению. Так что это синяя часть изображения. Как это сделать? Я знаю, что CGContextClipToMask, но я понятия не имею, как это использовать - может ли кто-нибудь помочь мне с примером кода? Правильно ли CGContextClipToMask?

Спасибо!

Ответ 1

Вы можете назначить слой маски на свой уровень 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];

Документация: Ссылка CALayer