У меня есть простой вид (левая часть рисунка), и мне нужно создать какой-то наклад (справа от рисунка) к этому представлению. Этот оверлей должен иметь некоторую непрозрачность, так что вид ниже он все еще частично виден. Самое главное, что наложение должно иметь круглое отверстие посередине, чтобы оно не перекрывало центр обзора (см. Рисунок ниже).
Я могу легко создать такой круг:
int radius = 20; //whatever
CAShapeLayer *circle = [CAShapeLayer layer];
circle.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0,radius,radius) cornerRadius:radius].CGPath;
circle.position = CGPointMake(CGRectGetMidX(view.frame)-radius,
CGRectGetMidY(view.frame)-radius);
circle.fillColor = [UIColor clearColor].CGColor;
И "полный" прямоугольный наложение, например:
CAShapeLayer *shadow = [CAShapeLayer layer];
shadow.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, view.bounds.size.width, view.bounds.size.height) cornerRadius:0].CGPath;
shadow.position = CGPointMake(0, 0);
shadow.fillColor = [UIColor grayColor].CGColor;
shadow.lineWidth = 0;
shadow.opacity = 0.5;
[view.layer addSublayer:shadow];
Но я понятия не имею, как объединить эти два слоя, чтобы они создавали эффект, который я хочу. Кто угодно? Я пробовал действительно все... Большое спасибо за помощь!