Переместите / измените размер UIBezierPath

У меня есть перетаскиваемый вид, на котором есть слой маски. Слой маски имеет UIBezierPath, который делает область на вид прозрачной / прозрачной (эффект, который я хочу). Моя конечная цель - изменить положение и размер пути (не слоя маски!), Передав CGRect, который рассчитывается на основе пересечения моего вида и другого прямоугольника (в основном я хочу скрыть область, которая пересекается).

1) Как я создаю маску и путь (создает прозрачный прямоугольник на моем виде):

self.maskLayer = [CAShapeLayer layer];
self.maskLayer.frame = self.contentView.bounds;

//default path rect
CGRect const rect = CGRectMake(CGRectGetMidX(self.contentView.bounds) ,
                                     CGRectGetMidY(self.contentView.bounds),
                                     50,50);


path = [UIBezierPath bezierPathWithRect:rect];

[path appendPath:[UIBezierPath bezierPathWithRect:self.contentView.frame]];

self.maskLayer.path = path.CGPath;

self.maskLayer.fillRule = kCAFillRuleEvenOdd;

self.contentView.layer.mask = self.maskLayer;

2) Моя проблема в том, что я не смог найти способ изменить размер / изменить положение только пути. Я искал в Интернете, но не смог найти никакого решения.

Этот код не работает, но я могу подумать:

//runs while the view is being dragged(using UIPanGestureRecognizer)
-(void)move{
 CGRect intersectedRect = CGRectIntersection(self.frame, self.productView.frame);
 path = [UIBezierPath bezierPathWithRect:intersectedRect];
[path appendPath:[UIBezierPath bezierPathWithRect:intersectedRect]];
[self.maskLayer setNeedsDisplay];
 }

Как я могу манипулировать только путем маскировщика в моей функции перемещения? Спасибо!

Ответы на вопрос(5)

Ваш ответ на вопрос