J'ai une vue simple (côté gauche de l'image) et je dois créer une sorte de superposition (côté droit de l'image) à cette vue. Cette superposition doit avoir une certaine opacité, de sorte que la vue située en dessous reste partiellement visible. Plus important encore, cette superposition doit avoir un trou circulaire en son milieu afin qu'elle ne recouvre pas le centre de la vue (voir l'image ci-dessous).
Je peux facilement créer un cercle comme celui-ci :
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;
Et une superposition rectangulaire "complète" comme celle-ci :
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];
Mais je n'ai aucune idée de la façon dont je peux combiner ces deux couches pour qu'elles créent l'effet que je veux. Quelqu'un ? J'ai vraiment tout essayé... Merci beaucoup pour votre aide !